Toolbox

Como um host imutável, o Silverblue é uma excelente plataforma para desenvolvimento baseado em contêiner e, para trabalhar com contêineres, buildah e podman são recomendados.

Silverblue também vem com o utilitário toolbox, que usa contêineres para fornecer um ambiente onde ferramentas de desenvolvimento e bibliotecas podem ser instaladas e usadas.

O toolbox facilita o uso de um ambiente em contêiner para o desenvolvimento e depuração de software do dia a dia. Em sistemas operacionais imutáveis, como Fedora Silverblue, ele fornece um ambiente familiar baseado em pacote no qual ferramentas e bibliotecas podem ser instaladas e usadas. No entanto, o toolbox também pode ser usado em sistemas baseados em pacotes.

Por que usar o toolbox?

Usar contêineres do toolbox para instalar ferramentas de desenvolvimento oferece uma série de vantagens:

  • Ele mantém o sistema operacional hospedeiro limpo e estável e ajuda a evitar a confusão que pode acontecer após a instalação de muitas ferramentas de desenvolvimento e pacotes.

  • Os contêineres são um espaço seguro para experimentar: se algo der errado, é fácil jogar uma toolbox fora e começar de novo.

  • Os contêineres são uma boa maneira de isolar e organizar as dependências necessárias para diferentes projetos.

Como funciona

O toolbox simplifica o uso de contêineres, fornecendo um pequeno número de comandos simples para criar, inserir, listar e remover contêineres. Ele também integra contêineres de caixa de ferramentas em seu ambiente de trabalho normal, para tornar mais fácil para você usá-los como um espaço de desenvolvimento diário.

Cada contêiner do toolbox é um ambiente que você pode inserir a partir da linha de comando. Dentro de cada um, você encontrará:

  • Seu nome de usuário e permissões existentes

  • Acesso para seu diretório pessoal (home)

  • Ferramentas de linha de comando comuns, incluindo o gerenciador de pacotes DNF

Em outras palavras, os contêineres do toolbox parecem e se comportam como um ambiente de linha de comando padrão do Linux.

Na maioria dos casos, quando um comando é executado dentro de um contêiner, o programa de dentro do contêiner é usado. No entanto, existem alguns casos especiais onde o programa no host é usado (usando flatpak-spawn). Um exemplo disso é o próprio comando do toolbox; isso torna possível usar o toolbox de dentro dos contêineres de toolbox.

Instalação

Fedora Silverblue

O toolbox está pré-instalado no Fedora Silverblue 30 ou mais recente. Em versões anteriores, ele pode ser instalado com o seguinte comando:

$ rpm-ostree install toolbox

Isso vai instalar toolbox como um RPM em camada.

Fedora Workstation

O toolbox pode ser instalado no Fedora Workstation (ou em qualquer versão baseada em pacote do Fedora) com o seguinte comando:

$ sudo dnf install toolbox

Sua primeira toolbox

Depois que o toolbox é instalado, dois comandos simples são necessários para começar:

$ toolbox create

Isso fará o download de uma imagem OCI e criará um contêiner do toolbox a partir dela. Assim que terminar, execute:

$ toolbox enter

Uma vez dentro da caixa de ferramentas, você pode acessar ferramentas de linha de comando comuns e instalar novas usando DNF.

Quando o prompt está dentro de uma toolbox, ele é prefixado com um diamante: isso indica que o prompt está dentro de um contêiner de toolbox. O símbolo do diamante pode não estar presente se você usar um tema de shell personalizado.

Comandos e uso

toolbox create [--container <nome>]

Cria um contêiner de toolbox. Isso fará o download de uma imagem OCI se não houver uma disponível (isso é necessário para criar o contêiner). Por padrão, uma imagem do Fedora que corresponde à versão do host é usada. Usado sem opções, toolbox create nomeará automaticamente o contêiner criado. Para criar toolboxes adicionais, use a opção --container <nome>.

toolbox enter [--container <nome>]

Entra em uma toolbox para uso interativo. Usado sem opções, toolbox enter abre a toolbox padrão. Se houver mais de uma toolbox, use a opção --container nome para especificar a toolbox a ser inserida.

toolbox run [--container <nome>] <cmd> <arg …​>

Executa um comando em uma toolbox sem entrar nela. Usado sem opções, toolbox run executa o comando na toolbox padrão. Se houver mais de uma toolbox, use a opção --container nome para especificar a toolbox a ser usada.

toolbox list

Lista contêineres e imagens de toolbox locais.

toolbox rm [--force] <nome>

Remove um ou mais contêineres de toolbox. A opção --force remove o contêiner mesmo se estiver em execução.

toolbox rmi [--force] <nome>

Remove uma ou mais imagens de toolbox.

toolbox --help

Lista comandos disponíveis.

Saindo de uma toolbox

Para retornar ao ambiente host, execute exit ou saia do shell atual (normalmente Ctrl+D).

Debaixo do capô

O toolbox usa as seguintes tecnologias:

Contato e problemas

Para relatar problemas, fazer sugestões ou contribuir com correções, consulte projeto do toolbox no GitHub.

Para entrar em contato com usuários e desenvolvedores do toolbox, use a instância do Discourse do Fedora, ou entre no canal IRC #silverblue no Freenode.