Cómo ejecutar cualquier programa desde cualquier distribución de Linux con Distrobox

Una fotografía de un portátil sobre una mesa.

Distrobox es una herramienta CLI simple que puede iniciar cualquier distribución de Linux dentro de tu computadora. A diferencia de VirtualBox, Distrobox crea “superposiciones” que te permiten ejecutar cualquier programa de diferentes distribuciones de Linux sobre tu sistema actual. Aquí, veamos qué hace que Distrobox funcione y cómo puedes instalarlo y usarlo.

Por qué usar Distrobox para gestionar múltiples distribuciones de Linux

El mayor punto de venta de Distrobox es que ejecuta invitados sobre el host en lugar de usar una instancia aislada. En comparación con una VM tradicional, esto te permite acceder sin problemas al directorio personal de tu host, a sus dispositivos externos e incluso a su servidor de visualización.

Una captura de pantalla que muestra Ubuntu ejecutando dos distribuciones diferentes dentro de él.

Este nivel de integración entre el invitado y el host te permite hacer un puñado de cosas únicas con Distrobox. Por ejemplo, puedes instalar una aplicación GUI en un invitado de Ubuntu y exportar su acceso directo al escritorio de tu sistema host. Como escritor técnico, encuentro útil esta función al probar y comparar diferentes aplicaciones.

Una captura de pantalla que muestra dos versiones de Vim ejecutándose en dos instancias de Distrobox.

Por último, Distrobox también es increíblemente ligero. Esto lo hace ideal para sistemas de gama baja que no tienen los recursos para ejecutar múltiples VMs. En mi experiencia, ejecutar invitados de Ubuntu y Fedora durante aproximadamente seis horas solo consumió alrededor de 900 MB de la RAM total de mi host.

Instalando y probando Distrobox

En su núcleo, Distrobox funciona aprovechando los demonios de contenedores como Docker y Podman para gestionar sus distribuciones. Debido a eso, el primer paso para implementar Distrobox es instalar Docker en tu máquina.

Confirma que el demonio de Docker está ejecutándose en tu sistema verificando su versión:

docker--version

Agrega tu usuario actual al grupo del sistema docker:

sudo adduser $USERdocker

Descarga e instala Distrobox usando el gestor de paquetes de tu sistema:

sudo apt install distrobox

Asegúrate de que has instalado correctamente Distrobox ejecutándolo con la opción -h.

Una terminal mostrando la pantalla de ayuda de Distrobox.

Desplegando tu primera superposición de distribución

Con Distrobox en funcionamiento, ahora puedes instalar tu primera superposición de distribución de Linux. Para esto, los desarrolladores proporcionan una imagen OCI de Fedora 39 como su medio de instalación predeterminado.

Comienza ejecutando Distrobox con el subcomando create seguido del nombre y el nombre de host que deseas para tu nueva superposición:

distrobox create --name YOUR-OVERLAY-NAME-HERE --hostname YOUR-CONTAINER-NAME-HERE

Escribe “y”, luego presiona Enter para descargar e implementar tu nueva superposición de distribución.

Una terminal mostrando el aviso de confirmación para crear una nueva instancia de Distrobox.

Nota: dependiendo del hardware de tu sistema, puede tardar entre 5 a 10 minutos en instalar completamente el sistema invitado en Distrobox.

Una vez hecho, ejecuta el siguiente comando para iniciar y cargar tu nueva superposición de distribución:

distrobox enter YOUR-OVERLAY-NAME-HERE

Confirma que ahora estás dentro del sistema de superposición mirando el nombre de host en el aviso de tu terminal.

Para cerrar una sesión de superposición, presiona Ctrl + D en la terminal del invitado, luego ejecuta distrobox stop seguido del nombre de tu superposición.

Por otro lado: explora el poder de Fedora y Red Hat Enterprise Linux consultando nuestra guía completa sobre el gestor de paquetes DNF.

Ejecutando una imagen de Linux personalizada en Distrobox

Aparte de Fedora 39, es posible ejecutar otras distribuciones de Linux compatibles con OCI dentro de Distrobox, por ejemplo, Arch Linux.

Para instalar una distribución de Linux personalizada, ejecuta el subcomando create con la opción -i seguida de un enlace a una imagen compatible con OCI. En mi caso, voy a usar la imagen Arch Linux Toolbx de Quay.io como base para mi superposición:

distrobox create --name arch-linux --hostname mte-archlinux-container --image quay.io/toolbx/arch-toolbox:latest

Una terminal mostrando el proceso de creación de un contenedor Docker de Arch Linux.

Nota: puedes encontrar una lista de distribuciones compatibles y sus enlaces de descarga en la página de Github del desarrollador.

Después de que termine, inicia la superposición y entra en tu nuevo sistema Arch Linux:

distrobox enter arch-linux

Al igual que con Fedora, confirma que ahora estás ejecutando Arch Linux verificando el nombre de host de tu terminal.

Una terminal mostrando el proceso de entrar en una nueva instancia de Distrobox.

Instalando y ejecutando paquetes en Distrobox

Uno de los beneficios de la estrecha integración de Distrobox es que los sistemas invitados se comportan como si fueran nativos de la máquina host. Debido a eso, instalar y ejecutar cualquier programa en Distrobox es similar a una instalación de Linux regular.

Para instalar un paquete en un invitado de Distrobox, primero asegúrate de que actualmente estás dentro de tu superposición de distribución:

distrobox enter arch-linux

Nota: puedes listar las superposiciones disponibles en tu sistema ejecutando distrobox ls.

Usa el gestor de paquetes de tu distribución invitada para instalar el programa que necesitas. En este caso, ejecutaré sudo pacman -S neofetch para instalar neofetch en mi sistema invitado Arch Linux.

Una terminal mostrando el gestor de paquetes pacman ejecutándose dentro de una instancia de Distrobox.

Prueba tu nuevo paquete ejecutándolo una vez dentro de la superposición y otra fuera de ella.

Una terminal mostrando la aislamiento del programa entre el Distrobox de Arch Linux y el sistema host de Ubuntu.

También puedes instalar un programa desde fuera de la superposición de Distrobox. Para eso, usa el subcomando enter seguido del operador --:

distrobox enter --name arch-linux --sudo pacman -s neofetch

Esta función se extiende a ejecutar programas fuera de tu sistema invitado. Por ejemplo, el siguiente comando ejecutará neofetch en mi invitado Arch Linux y mostrará su salida en mi sistema host Ubuntu:

distrobox enter --name arch-linux -- neofetch

Una terminal mostrando el programa neofetch dentro de la instancia de Arch Linux ejecutándose en el host de Ubuntu.

Bueno saber: ¿usando un gestor de paquetes diferente? Consulta nuestra útil hoja de trucos de gestores de paquetes para diferentes distribuciones de Linux.

Exportando un programa de superposición al sistema host

Mientras que el operador -- es excelente para tareas simples y únicas, también es posible crear “perfiles” de Distrobox que te permiten ejecutar cualquier programa de invitado directamente desde tu máquina Linux host. Esto es útil si deseas tener acceso constante a un programa dentro de tu sistema invitado de Distrobox.

Para exportar a tu máquina host, primero entra en el sistema donde has instalado tu programa:

distrobox enter arch-linux

Asegúrate de que tu aplicación esté funcionando correctamente desde dentro del contenedor. En mi caso, quiero exportar mi instalación de Emacs dentro de Arch Linux.

Una captura de pantalla mostrando el cliente GUI de Emacs ejecutándose dentro de la instancia de Distrobox de Arch Linux.

Ejecuta distrobox-export con la opción --app seguida del nombre del programa que deseas exportar:

distrobox-export --app emacs

Prueba tu nueva aplicación exportada yendo al lanzador de aplicaciones de tu sistema host y haciendo clic en el ícono del programa.

Una captura de pantalla mostrando el lanzador de aplicaciones de Ubuntu mostrando el cliente GUI de Emacs.

Instalar y ejecutar sistemas operativos invitados con Distrobox es solo un ejemplo de lo que puedes hacer con Docker y la tecnología de contenedores. Profundiza en cómo funciona este programa consultando nuestra introducción sobre cómo ejecutar y gestionar contenedores Docker.

Crédito de la imagen: Kari Shea a través de Unsplash. Todas las alteraciones y capturas de pantalla por Ramces Red.