Usando a Toolbox no Fedora Silverblue
Em outros posts eu comentei sobre como funciona a instalação de programas RPM no Fedora Silverblue, sobre o fato dos pacotes ficarem em camadas que são montadas em novas imagens com a base do sistema. A cada alteração nos RPMs o sistema precisa reiniciar para subir a nova imagem de Base + Camada de pacotes (layered packages).
Cada pessoa usa o Silverblue de forma diferente. Algumas instalam os pacotes com o rpm-ostree mesmo, outras instalam tudo que podem em flatpaks. E outras pessoas usam a toolbox para instalar alguns programas RPM que vão ficar em um contêiner (algo como um chroot).
Eu costumo instalar pacotes de linha de comando pelo rpm-ostree, e as aplicações gráficas em Flatpak. Instalo poucas coisas em toolbox, e vou mostrar algumas delas aqui.
O que é a Toolbox?
É uma caixa de ferramentas (ora, que surpresa hehe) que permite instalarmos programas e ambientes num contêiner, usando ferramentas familiares como o DNF. Mas de dentro da toolbox vocês continuam com o mesmo usuário e permissões do sistema host (no meu caso, o Silverblue), tem acesso ao seu diretório home e podem usar o DNF para lidar com pacotes.
Se algo der errado, vocês podem jogar fora a toolbox e tudo que foi feito nela.
Instalando a toolbox
O Fedora Silverblue já vem com a toolbox instalada. No Fedora tradicional ela pode ser instalada comsudo dnf install toolbox
Criando uma toolbox
Para criar uma toolbox com o mesmo sistema do host (no meu caso, Fedora 32), basta o comandotoolbox create
Para criar uma toolbox com uma versão específica do Fedora, podemos usar algo comotoolbox create --release f30
O comando acima cria uma toolbox com o Fedora 30, o que é interessante se precisarmos usar pacotes que não estão no 32 mas estavam no 30.
Não é necessário darmos um nome à toolbox, mas é bom fazer isso se formos usar mais de uma toolbox. Para nomear a toolbox:toolbox create --container fedora31 --release f31
O comando acima cria uma toolbox com a versão 31 do Fedora e dá o nome de fedora31.
Vou criar uma toolbox com a mesma versão do host e vou dar o nome de fedora32:toolbox create -c fedora32
O parầmetro -c é a abreviação de --container.
Vou criar mais uma toolbox com a versão 30 do Fedora, e vou dar o nome de fedora30:toolbox create --container fedora30 --release f30
Vejamos a lista do toolboxes:toolbox list
Acessando a toolbox
Se tivéssemos criado apenas uma toolbox, poderíamos acessar de forma bem simples:toolbox enter
Como temos mais de uma, vamos entrar informando o contêiner desejado e vamos verificar a versão do sistema no contêiner:toolbox enter --container fedora30
cat /etc/os-release
Usando o DNF na toolbox
Podemos instalar programas na toolbox usando o DNF. Vou instalar um editor de textos simples, o micro.sudo dnf install micro
Editor Micro rodando no contêiner:
Rodando os programas da toolbox a partir do host
Para rodar um programa da toolbox a partir do host, preciso informar que quero rodar a partir de uma toolbox. Se eu tiver mais de um contêiner, preciso informar o contêiner também. Vejam o erro na imagem:
Para rodar o editor micro no host, vou usar o comando abaixo:toolbox run -c fedora30 micro Projetos/php/app/blog/app/User.php
** O caminho do arquivo, no comando acima, só foi colocado para mostrar screenshot com algum arquivo aberto, é irrelevante ao artigo.
Posso criar um alias para o comando e para digitar somente micro:alias micro="toolbox run -c fedora30 micro"
Instalando programas gráficos na toolbox
Embora não seja o ideal, também podemos instalar programas gráficos na toolbox. Vou instalar o editor/IDE Geany.
O Geany não possui plugins no pacote flatpak do Fedora, nem no pacote do Flathub. Tenho duas opções: usar o rpm-ostree e colocar o geany + plugins nos layered packages ou usar a toolbox. Vou mostrar na toolbox, dá mais trabalho, mas pode ajudar como referência em alguma necessidade da comunidade.
Vou fazer a instalação no outro contêiner (fedora32) apenas para mostrar o uso de mais de um contêiner:toolbox enter -c fedora32
sudo dnf install geany geany-plugins-*
Rodando o Geany a partir do contêiner
geany
## Rodando o Geany a partir do host
O procedimento é igual ao anterir, do editor Micro:toolbox run -c fedora32 geany
Criando um lançador para o Geany
Para que o Geany apareça no meu menu de aplicações, vou criar um lançador para ele. Em resumo: eu copiei um arquivo geany.desktop de outro lugar e alterei somente a linha Exec do arquivo para que ele use o comando adequado. Também coloquei um ícone para que o lançador fique mais bonito.
Salvei o arquivo em ~/.local/share/applications/geany.desktop, com a alteração nas linhas:
Exec=toolbox run -c fedora32 geany %F Icon=/home/leo/.local/share/icons/geany.png
Vejam o lançador do programa funcionando:
E o programa funcionando com todos os plugins:
Removendo uma toolbox
Vou remover a toolbox do contêiner fedora 30, e vamos ver que o programa Micro deixará de existir no sistema.toolbox rm --force fedora30
Agora temos apenas um contêiner - fedora32
E o comando micro (o alias criado anteriormente) não funciona mais:
Por hoje é só, pessoal. Até a próxima!
Comentários
-
Digite seu comentário> @leandroramos disse:
Em outros posts eu comentei sobre como funciona a instalação de programas RPM no Fedora Silverblue, sobre o fato dos pacotes ficarem em camadas que são montadas em novas imagens com a base do sistema. A cada alteração nos RPMs o sistema precisa reiniciar para subir a nova imagem de Base + Camada de pacotes (layered packages).
Cada pessoa usa o Silverblue de forma diferente. Algumas instalam os pacotes com o rpm-ostree mesmo, outras instalam tudo que podem em flatpaks. E outras pessoas usam a toolbox para instalar alguns programas RPM que vão ficar em um contêiner (algo como um chroot).
Eu costumo instalar pacotes de linha de comando pelo rpm-ostree, e as aplicações gráficas em Flatpak. Instalo poucas coisas em toolbox, e vou mostrar algumas delas aqui.
O que é a Toolbox?
É uma caixa de ferramentas (ora, que surpresa hehe) que permite instalarmos programas e ambientes num contêiner, usando ferramentas familiares como o DNF. Mas de dentro da toolbox vocês continuam com o mesmo usuário e permissões do sistema host (no meu caso, o Silverblue), tem acesso ao seu diretório home e podem usar o DNF para lidar com pacotes.
Se algo der errado, vocês podem jogar fora a toolbox e tudo que foi feito nela.
Instalando a toolbox
O Fedora Silverblue já vem com a toolbox instalada. No Fedora tradicional ela pode ser instalada com
sudo dnf install toolbox
Criando uma toolbox
Para criar uma toolbox com o mesmo sistema do host (no meu caso, Fedora 32), basta o comando
toolbox create
Para criar uma toolbox com uma versão específica do Fedora, podemos usar algo como
toolbox create --release f30
O comando acima cria uma toolbox com o Fedora 30, o que é interessante se precisarmos usar pacotes que não estão no 32 mas estavam no 30.Não é necessário darmos um nome à toolbox, mas é bom fazer isso se formos usar mais de uma toolbox. Para nomear a toolbox:
toolbox create --container fedora31 --release f31
O comando acima cria uma toolbox com a versão 31 do Fedora e dá o nome de fedora31.Vou criar uma toolbox com a mesma versão do host e vou dar o nome de fedora32:
toolbox create -c fedora32
O parầmetro -c é a abreviação de --container.Vou criar mais uma toolbox com a versão 30 do Fedora, e vou dar o nome de fedora30:
toolbox create --container fedora30 --release f30
Vejamos a lista do toolboxes:
toolbox list
Acessando a toolbox
Se tivéssemos criado apenas uma toolbox, poderíamos acessar de forma bem simples:
toolbox enter
Como temos mais de uma, vamos entrar informando o contêiner desejado e vamos verificar a versão do sistema no contêiner:
toolbox enter --container fedora30
cat /etc/os-release
Usando o DNF na toolbox
Podemos instalar programas na toolbox usando o DNF. Vou instalar um editor de textos simples, o micro.
sudo dnf install micro
Editor Micro rodando no contêiner:
Rodando os programas da toolbox a partir do host
Para rodar um programa da toolbox a partir do host, preciso informar que quero rodar a partir de uma toolbox. Se eu tiver mais de um contêiner, preciso informar o contêiner também. Vejam o erro na imagem:
Para rodar o editor micro no host, vou usar o comando abaixo:
toolbox run -c fedora30 micro Projetos/php/app/blog/app/User.php
** O caminho do arquivo, no comando acima, só foi colocado para mostrar screenshot com algum arquivo aberto, é irrelevante ao artigo.Posso criar um alias para o comando e para digitar somente micro:
alias micro="toolbox run -c fedora30 micro"
Instalando programas gráficos na toolbox
Embora não seja o ideal, também podemos instalar programas gráficos na toolbox. Vou instalar o editor/IDE Geany.
O Geany não possui plugins no pacote flatpak do Fedora, nem no pacote do Flathub. Tenho duas opções: usar o rpm-ostree e colocar o geany + plugins nos layered packages ou usar a toolbox. Vou mostrar na toolbox, dá mais trabalho, mas pode ajudar como referência em alguma necessidade da comunidade.Vou fazer a instalação no outro contêiner (fedora32) apenas para mostrar o uso de mais de um contêiner:
toolbox enter -c fedora32
sudo dnf install geany geany-plugins-*
Rodando o Geany a partir do contêiner
geany
## Rodando o Geany a partir do host
O procedimento é igual ao anterir, do editor Micro:toolbox run -c fedora32 geany
Criando um lançador para o Geany
Para que o Geany apareça no meu menu de aplicações, vou criar um lançador para ele. Em resumo: eu copiei um arquivo geany.desktop de outro lugar e alterei somente a linha Exec do arquivo para que ele use o comando adequado. Também coloquei um ícone para que o lançador fique mais bonito.
Salvei o arquivo em ~/.local/share/applications/geany.desktop, com a alteração nas linhas:
Exec=toolbox run -c fedora32 geany %F Icon=/home/leo/.local/share/icons/geany.png
Vejam o lançador do programa funcionando:
E o programa funcionando com todos os plugins:
Removendo uma toolbox
Vou remover a toolbox do contêiner fedora 30, e vamos ver que o programa Micro deixará de existir no sistema.
toolbox rm --force fedora30
Agora temos apenas um contêiner - fedora32
E o comando micro (o alias criado anteriormente) não funciona mais:
Por hoje é só, pessoal. Até a próxima!
Muito esclarecedor amigo, ótimo post
0 -
Cara escreve um livro que eu compro...pelo amor de Deus. Ta perfeito! Parabéns.
0 -
@lucas_pereira Muito obrigado pelo apoio
0 -
@Jefferson_ADS Obrigado
0 -
Foi mal aeee pelo exagero merecido. Me empoguei!
0
Salas de discussão
- 721 Todas as salas de discussão
- 5 Eventos
- 402 Fedora
- 7 CoreOS
- 137 Spins
- 11 CINNAMON
- 28 GNOME
- 63 KDE
- 10 LXDE
- 4 LXQT
- 13 MATE
- SOAS
- 3 XFCE
- 13 Server
- 84 Workstation
- 33 SilverBlue
- Atomic
- 3 Labs
- ARM®
- 3 Segurança
- 7 Servidores
- 222 Tutoriais
- 6 Críticas e Sugestões
- 16 Novidades e anuncios
- 5 CentOS
- 18 Games
- 31 Hardware
- 8 Linguagens de programação