Erro ao usar Homebrew no Distrobox: “Comando não encontrado” — como resolver
A problemática
Se você usa Distrobox para gerenciar seus ambientes de desenvolvimento (como um contêiner Ubuntu) e tem o Homebrew instalado no seu sistema principal, pode acabar se deparando com o seguinte erro ao tentar usar o brew dentro do contêiner:
bash: brew: command not found
Mesmo que o Homebrew esteja funcionando perfeitamente no seu PC (o host), o sistema dentro do contêiner simplesmente não consegue enxergá-lo.
Por que isso acontece?
O Distrobox facilita muito a vida porque compartilha automaticamente a sua pasta pessoal (/home/seu_usuario) do seu PC direto para o contêiner.
O problema é que o Homebrew no Linux, por padrão, é instalado em um diretório global:
/home/linuxbrew/.linuxbrew
Como essa pasta fica fora do seu diretório de usuário, o contêiner do Distrobox é criado isolado e “cego” para a existência desse diretório.
Resultado: os pacotes e o gerenciador não ficam acessíveis nativamente.
Solução rápida (via atalho)
Se você precisa apenas rodar um brew install esporádico e deixar o sistema principal lidar com isso, pode criar um link simbólico que diz ao contêiner para executar o comando no host. Dentro do contêiner, rode:
sudo ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/brew
Isso cria um túnel direto para o seu PC.
Solução definitiva (recomendada)
Se o seu objetivo é que o Distrobox e o seu PC compartilhem o Homebrew nativamente, permitindo que você instale e rode ferramentas como nvm, python ou dependências de compilação diretamente no contêiner, a melhor saída é montar a pasta durante a criação.
1. Crie o contêiner mapeando a pasta do Brew
No terminal do seu sistema principal, crie um novo distrobox adicionando a flag --volume:
distrobox create --name ubuntu-dev --image ubuntu:latest --volume /home/linuxbrew:/home/linuxbrew
2. Entre no contêiner
distrobox enter ubuntu-dev
3. Carregue o Brew automaticamente
Para não precisar exportar as variáveis toda vez que abrir o terminal do contêiner, adicione-as ao seu arquivo de configuração (se usar zsh, troque .bashrc por .zshrc) :
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
source ~/.bashrc
O que isso faz?
Essa configuração diz:
Pegue a pasta /home/linuxbrew do meu PC.
Mapeie ela exatamente no mesmo caminho dentro do contêiner.
Assim, todo o ecossistema do seu Brew fica acessível nativamente e integrado ao seu ambiente de desenvolvimento.
Testando a solução
Após salvar o arquivo e rodar o source:
Abra o terminal do seu contêiner Distrobox
Teste o comando:
brew --version
Se aparecer a versão do Homebrew instalada no seu sistema principal, está tudo certo. Agora seu PC e seu contêiner compartilham o mesmo gerenciador!
Dica extra
Como as pastas estão mapeadas em sincronia, qualquer coisa instalada via Brew dentro do Distrobox também estará imediatamente disponível no seu sistema principal (e vice-versa). Isso poupa espaço em disco e evita dor de cabeça com configurações duplicadas de ferramentas de desenvolvimento.
Conclusão
O “sumiço” do Homebrew dentro do Distrobox acontece apenas por um isolamento de diretórios raiz.
A solução ideal é simples: dizer ao Distrobox para espelhar a pasta /home/linuxbrew usando a flag --volume.
Depois de configurado, seu ambiente ficará contínuo e você não terá mais problemas de “command not found”.
Fique ligado
Em breve vamos trazer mais conteúdos sobre:
Distrobox na prática
configuração de ambientes de desenvolvimento isolados
otimização de terminal
ferramentas úteis para desenvolvedores
Se tiver dúvidas ou quiser sugerir novos tutoriais, participe da comunidade!