En el hilo referencia de los ejecutables de linux para el sistema acabamos hablando largo y tendido de los flatpak, uno de los sistemas de distribución de paquetes que podemos user en Linux más allá de los propios de cada distribución (rpm, deb, etc.).
Pero ¿qué pasa si te quieres testear software pero a la vez te gusta tener un sistema estable? Tenemos máquinas virtuales, pero hay que instalarlas, encenderlas, recordar qué configuración tienen… no es muy práctico.
Hay otra tecnología que encaja en esta idea: los contenedores. Pero montar un contenedor para probar cosas es un poco… meh.
Distrobox es un inventillo que se adapta perfectamente a esto. La idea es que tú instalas un contenedor con lo necesario y lo usas y ya. Realmente no afecta a tu sistema.
Incluso es una forma de instalar software en sistemas que con pocos repositorios, como Aeon/Kalpa. O porque no lo encuentras en ningún repositorio para openSUSE. Atrás quedan los tiempos en los que había muchísimo más software para Debian/Ubuntu que para rpm, pero aún así puede ser que una aplicación concreta solo esté disponible para algún tipo de empaquetado diferente. O tal vez quieras una versión concreta empaquetada para una versión concreta, por lo que sea.
O puedes querer cacharrear en tu propio sistema pero sin romper nada.
Venga, basta de rollos que siempre me enrollo como una persiana…
Nota: Estaba pensando (no solo) en @DiabloRojo que le gusta tener su sistema estable porque el tiempo es el que es pero también cacharrear de cuando en cuando.
En Leap no viene instalado por defecto, y si os digo la verdad no estoy seguro de qué sucede en Tumbleweed. En Aeon/Kalpa viene por defecto. Prueba a ver si tienes el comando distrobox en tu sistema: si lo tienes, ya está; si no lo tienes, en la wiki tienes una buena página que entre otras cosas te dice cómo instalarlo.
Usarlo es tan sencillo como que para empezar tienes que crear tu contenedor, tu “caja de distribución”.
Este ejemplo va sin --root, lo que hace que no requiera claves, como si todo fuera usuario regular, de forma que para ejecutar algo como administrador basta con usar sudo. Si quieres usarlo por ejemplo como entorno de desarrollo más completo, deberías cerciorarte de usar ese modificador.
El comando distrobox-export lo que hace es proporcionar un acceso directo entre los que tienes en tu openSUSE. Verás que hace referencia al sistema operativo correspondiente.
Concretamente la aplicación Ficheros (Nautilus). No la tenía en mi sistema porque soy fan de Dolphin, pero si quisiera usarla ahí está. Integra correctamente.
Hasta donde yo sé, usar software de esta manera es realmente diferente a usar algún sistema de contenedores como docker/podman. Aquí la configuración de usuario es la tuya, puedes acceder al disco, etc.
En ese sentido puedes preferir la seguridad que proporciona flatpak y su sistema de permisos por aplicación. En cambio, una persona que usa Aeon o Kalpa encontrará una forma bastante conveniente de añadir software a su sistema. También es útil en el caso que no quieras añadir determinadas librerías o ciertas versiones de las mismas.
Una de las pruebas que había hecho en tiempos había sido añadir aplicaciones como libreoffice y otras desde Tumbleweed para un sistema Kalpa que estaba probando, y era bastante razonable.
Distrobox no es una máquina virtual. Si quieres probar un escritorio, por ejemplo, es un poco más complejo que todo esto.
Vale, te gusta vivir al límite. Bah, eso igual es exagerar.
En el ejemplo de kdeneon ni siquiera lo ejecuté con administrador. No hay un proceso init 1, y hay otra serie de condicionantes, entre los que destacan en que distrobox ya le ofrece el display actual del sistema. Por eso puedes ejecutar las aplicaciones.
Como he dicho, distrobox usa la configuración de tu cuenta de persona usuaria y demás, así que para hacer este tipo de pruebas lo suyo es usar una cuenta de persona usuaria diferente para que no se mezcle. Como fuere, para probar el Plasma de KDE Neon, que tanto dicen que es el ultimísimo:
Paso 1: arrancar o iniciar un terminal de texto (no un emulador como konsole y demás: cierra la sesión gráfica por completo o arranca sin ella).
Paso 2: arranca un cliente gráfico como xinit. En la configuración por defecto, xinit ha de ser ejecutado como administrador. Si no hay sesión gráfica, sudo xinit debería ser suficiente. Si hay una sesión gráfica en marcha porque te has saltado mitad del paso 1 o te gusta la emoción, entonces el comando será sudo xinit -- :1 donde 1 es el número de la sesión gráfica contando desde 0. Es decir, la segunda sesión gráfica.
Paso 3: cambia a usuario regular son su. su [la cuenta]. Si la cuenta se llama mauricio, el comando será su mauricio
Paso 4: entra en el distrobox. En el ejemplo anterior de Kde Neon, sería distrobox enter kdeneon
Paso 5: arranca el escritorio Plasma. startplasma-x11 para el servidor X11 y startplasma-wayland para el servidor wayland. Por ejemplo startplasma-x11 &
Hay aplicaciones que no funcionarán, como systemsettings, pero tendrás una vista razonable de cómo luce ese escritorio y acceso a las demás. La ventana del terminal permanecerá abierta y si la cierras, cierra toda la sesión gráfica. Pero puedes minimizarla y ya está.
Puede que el invento no te convenza y quieras borrar tus huellas, o simplemente es una forma muy costosa en espacio de disco para instalar aplicaciones gráficas básicas. Eliminar es sencillo.
Borrar la entrada de aplicación
La forma de integrar las aplicaciones de una caja de distribución con las de tu sistema consiste en utilizar distrobox-export. Para eliminarla de tu sistema, se hace con el mismo comando con el modificador --delete: tux@kdeneon ~]$ distrobox-export --app kwrite --delete
Por supuesto, esto solo borra esa integración. Toda la caja de distribución sigue disponible, y podrías reestablecer la aplicación o bien añadir otras.
Borrar la propia caja de distribución
el comando distrobox-rm permite eliminar una caja de distribución. Por ejemplo: tux@mipc:~> distrobox-rm kdeneon
eliminará la caja de distribución kdeneon de este ejemplo. Si exportas o eliminas alguna aplicación antes de eliminar la caja de distribución es posible que tengas un error porque está en uso.
distrobox-list permite optener una lista de tus cajas de distribución.
distrobox-stop permite detener una caja de distribución: las cajas de distribución quedan en ejecución incluso cuando ejecutas exit así que entrar en ellas es realmente rápido.
distrobox-export --app exporta una aplicación para que puedas usarla en tu sistema. Pero también es posible hacer lo mismo con un comando: distrobox-export --bin /usr/bin/code --extra-flags "--foreground" --export-path $HOME/.local/bin
En este caso, --export-path es necesario para que distrobox sepa qué quieres hacer con él.
Eliminarlo es similar a lo visto para las aplicaciones: distrobox-export --bin /usr/bin/vim --export-path ~/.local/bin --delete
Por supuesto, no tiene mucho sentido usar --app y --bin a la vez.
El modificador --sudo exportará el binario para ser ejecutado como root dentro del contenedor.