Introducción

Traballando con Debian é habitual que as aplicacións que utilizo vaian moi por detrás da versión actual. En ocasións Debian pode acumular retrasos de ata dous anos con algunha. Polo que se queremos probar as últimas versións das aplicacións, temos que recorrer a outras distros, compilar dende os binarios, nix, guix, etc.

Hoxe imos ver outra das opcións para probar aplicacións dun xeito máis sinxelo. Non é o ideal para traballar con elas, pero si para probalas. Trátase de utilizar Distrobox, que é unha forma de levantar un contenedor cunha distro na nosa distro actual e poder utilizar aplicacións a través dela. Estas aplicacións terán acceso aos recursos do sistema, carpetas, etc. Polo que é máis eficiente que executar unha máquina virtual, pero igualmente estamos a levantar un contenedor co seu consumo de recursos.

En calquer caso, se quixésemos probar por exemplo a última versión de Firefox, podemos levantar unha máquina con Arch e instalar aí o navegador. Unha vez instalado podemos executalo e verémolo como se estivese a correr directamente na nosa máquina.

Instalación de Distrobox

Polo que vexo Distrobox xa soe vir nos repositorios das distribucións. Co que para instalar en Debian e derivados, sería

sudo apt install distrobox

Para Fedora

sudo dnf install distrobox

Esta ferramenta fai uso de outras como docker, podman ou lilipod. Polo que é posible que se non as temos, tamén se instalen.

Uso

Unha vez instalada veremos como crear as nosas máquinas, o cal se fai a través dun ficheiro de configuración moi sinxelo. Podemos ver un exemplo na wiki de Arch

[ubuntu]
additional_packages="git vim tmux nodejs"
image=ubuntu:latest
init=false
nvidia=false
pull=true
root=false
replace=true
start_now=false
# You can add comments using this #
[arch] # also inline comments are supported
additional_packages="git vim tmux nodejs"
home=/tmp/home
image=archlinux:latest
init=false
start_now=true
init_hooks="touch /init-normal"
nvidia=true
pre_init_hooks="touch /pre-init"
pull=true
root=false
replace=false
volume="/tmp/test:/run/a /tmp/test:/run/b"

Aquí podemos ver dúas máquinas definidas, unha con Ubuntu e outra con Arch. Este arquivo terá extensión .ini. Agora para levantar os contenedores utilizaremos

$ distrobox assemble create --file /ruta/ao/ficheiro.ini
 - Creating arch...
Resolved "arch" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull docker.io/library/arch:latest...
Getting image source signatures
Copying blob 0c01110621e0 done   | 
Copying config ca216406f7 done   | 
Writing manifest to image destination
ca216406f76b2a37aef6a3c33770b11760879a8a0b13544f1810740aa32c5579
Creating 'arch' using image arch:latest      [ OK ]
Distrobox 'arch' successfully created.
To enter, run:

distrobox enter arch

Se nos fixamos no final, xa nos indica como podemos entrar no contenedor. Simplemente con escribir distrobox enter arch. Unha vez na consola, chegaría con instalar a apliación que queiramos por exemplo sudo pacman -S firefox para instalar Firefox. Para lanzar a aplicación simplemente a executamos no terminal e será aberta coma se a tivésemos en local.

Cando queiramos parar os contenedores, executaremos o seguinte comando

$ distrobox assemble rm --file /ruta/ao/ficheiro.ini

Que borrará todo-los contenedores no ficheiro.

Conclusión

Como vemos é un xeito máis doado para probar aplicacións, sen ter que compilar por nos mesmos dende os binarios. O cal implica ocupármonos tamén das dependencias para poder facelo. Deste xeito podemos coller calquer aplicación que esté nos repos doutra distribución e probala. Sen ter que recurrir a flatpak, snap, etc.

Bibliografía

Distrobox: web do proxecto
Arch wiki: wiki de Arch