Como Executar Qualquer Programa de Qualquer Distro Linux com Distrobox

Uma fotografia de um laptop em cima de uma mesa.

Distrobox é uma ferramenta CLI simples que pode inicializar qualquer distro Linux dentro do seu computador. Ao contrário do VirtualBox, o Distrobox cria “sobreposições” que permitem que você execute qualquer programa de diferentes distros Linux em cima do seu sistema atual. Aqui, vamos conferir o que faz o Distrobox funcionar e como você pode instalá-lo e usá-lo.

Por Que Usar Distrobox para Gerenciar Múltiplas Distros Linux

O maior ponto de venda do Distrobox é que ele executa convidados em cima do host em vez de usar uma instância isolada. Comparado a uma VM tradicional, isso permite que você acesse facilmente o diretório home do seu host, seus dispositivos externos e até mesmo seu servidor de exibição.

Uma captura de tela mostrando o Ubuntu executando duas distros diferentes dentro dele.

Esse nível de integração entre o convidado e o host permite que você faça uma série de coisas únicas com o Distrobox. Por exemplo, você pode instalar um aplicativo GUI em um convidado Ubuntu e exportar seu atalho para a área de trabalho do seu sistema host. Como escritor técnico, acho esse recurso útil ao testar e comparar diferentes aplicativos.

Uma captura de tela mostrando duas versões do Vim executando em duas instâncias do Distrobox.

Por fim, o Distrobox também é incrivelmente leve. Isso o torna ideal para sistemas de baixo desempenho que não têm os recursos para executar várias VMs. Na minha experiência, executar convidados Ubuntu e Fedora por cerca de seis horas consumiu apenas cerca de 900 MB da RAM total do meu host.

Instalando e Testando o Distrobox

Em sua essência, o Distrobox funciona aproveitando daemons de contêiner, como Docker e Podman, para gerenciar suas distros. Por causa disso, o primeiro passo para implantar o Distrobox é instalar o Docker na sua máquina.

Confirme que o daemon do Docker está em execução no seu sistema verificando sua versão:

docker--version

Adicione seu usuário atual ao grupo do sistema docker:

sudo adduser $USERdocker

Baixe e instale o Distrobox usando o gerenciador de pacotes do seu sistema:

sudo apt install distrobox

Certifique-se de que você instalou corretamente o Distrobox executando-o com a flag -h.

Um terminal mostrando a tela de ajuda do Distrobox.

Implantando Sua Primeira Distro de Sobreposição

Com o Distrobox em funcionamento, você pode agora instalar sua primeira sobreposição de distro Linux. Para isso, os desenvolvedores fornecem uma imagem OCI do Fedora 39 como seu meio de instalação padrão.

Comece executando o Distrobox com o subcomando create seguido pelo nome e pelo hostname que você deseja para sua nova sobreposição:

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

Digite “y”, em seguida pressione Enter para baixar e implantar sua nova distro de sobreposição.

Um terminal mostrando o prompt de confirmação para criar uma nova instância do Distrobox.

Nota: dependendo do hardware do seu sistema, pode levar entre 5 a 10 minutos para instalar completamente o sistema convidado no Distrobox.

Uma vez feito, execute o seguinte comando para inicializar e carregar sua nova distro de sobreposição:

distrobox enter YOUR-OVERLAY-NAME-HERE

Confirme que você está agora dentro do sistema de sobreposição olhando para o hostname no seu prompt de terminal.

Para fechar uma sessão de sobreposição, pressione Ctrl + D no terminal do convidado, em seguida execute distrobox stop seguido pelo nome da sua sobreposição.

Em uma nota lateral: explore o poder do Fedora e do Red Hat Enterprise Linux consultando nosso guia abrangente sobre o gerenciador de pacotes DNF.

Executando uma imagem Linux personalizada no Distrobox

Além do Fedora 39, é possível executar outras distros Linux compatíveis com OCI dentro do Distrobox, por exemplo, Arch Linux.

Para instalar uma distro Linux personalizada, execute o subcomando create com a flag -i seguida por um link para uma imagem compatível com OCI. No meu caso, vou usar a imagem Arch Linux Toolbx do Quay.io como base para minha sobreposição:

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

Um terminal mostrando o processo de criação de um contêiner Docker Arch Linux.

Nota: você pode encontrar uma lista de distros compatíveis e seus links de download na página do Github do desenvolvedor.

Depois que estiver pronto, inicialize a sobreposição e entre no seu novo sistema Arch Linux:

distrobox enter arch-linux

Assim como com o Fedora, confirme que você está agora executando o Arch Linux verificando o hostname do seu terminal.

Um terminal mostrando o processo de entrar em uma nova instância do Distrobox.

Instalando e Executando Pacotes no Distrobox

Um dos benefícios da integração estreita do Distrobox é que os sistemas convidados se comportam como se fossem nativos da máquina host. Por causa disso, instalar e executar qualquer programa no Distrobox é semelhante a uma instalação Linux regular.

Para instalar um pacote em um convidado Distrobox, primeiro certifique-se de que você está atualmente dentro da sua distro de sobreposição:

distrobox enter arch-linux

Nota: você pode listar as sobreposições disponíveis no seu sistema executando distrobox ls.

Use o gerenciador de pacotes da sua distro convidada para instalar o programa que você precisa. Neste caso, vou executar sudo pacman -S neofetch para instalar o neofetch no meu sistema convidado Arch Linux.

Um terminal mostrando o gerenciador de pacotes pacman executando dentro de uma instância do Distrobox.

Teste seu novo pacote executando-o uma vez dentro da sobreposição e outra fora dela.

Um terminal mostrando a isolação do programa entre o Distrobox Arch Linux e o sistema host Ubuntu.

Você também pode instalar um programa de fora da sobreposição do Distrobox. Para isso, use o subcomando enter seguido pelo operador --:

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

Esse recurso se estende à execução de programas fora do seu sistema convidado. Por exemplo, o seguinte comando executará o neofetch no meu convidado Arch Linux e exibirá sua saída no meu sistema host Ubuntu:

distrobox enter --name arch-linux -- neofetch

Um terminal mostrando o programa neofetch dentro da instância Arch Linux executando no host Ubuntu.

Bom saber: usando um gerenciador de pacotes diferente? Confira nosso prático cheatsheet de gerenciadores de pacotes para diferentes distros Linux.

Exportando um Programa de Sobreposição para o Sistema Host

Enquanto o operador -- é ótimo para tarefas simples e pontuais, também é possível criar “perfis” do Distrobox que permitem que você execute qualquer programa convidado diretamente da sua máquina Linux host. Isso é útil se você quiser ter acesso constante a um programa dentro do seu sistema convidado Distrobox.

Para exportar para sua máquina host, primeiro entre no sistema onde você instalou seu programa:

distrobox enter arch-linux

Certifique-se de que seu aplicativo está funcionando corretamente de dentro do contêiner. No meu caso, quero exportar minha instalação do Emacs dentro do Arch Linux.

Uma captura de tela mostrando o cliente GUI do Emacs executando dentro da instância Distrobox Arch Linux.

Execute distrobox-export com a flag --app seguida pelo nome do programa que você deseja exportar:

distrobox-export --app emacs

Teste seu aplicativo recém-exportado indo até o lançador de aplicativos do seu sistema host e clicando no ícone do programa.

Uma captura de tela mostrando o lançador de aplicativos do Ubuntu mostrando o cliente GUI do Emacs.

Instalar e executar sistemas operacionais convidados com o Distrobox é apenas um exemplo do que você pode fazer com Docker e tecnologia de contêiner. Mergulhe fundo em como este programa funciona consultando nosso guia sobre como executar e gerenciar contêineres Docker.

Crédito da imagem: Kari Shea via Unsplash. Todas as alterações e capturas de tela por Ramces Red.