Sistemas operacionais imutáveis e suas tecnologias

Nesse artigo, apresento o Fedora Silverblue e suas características, além de demonstrar também as vantagens de se utilizar um sistema operacional imutável no dia a dia, seja para a utilização básica ou para desenvolvimento de software.

[ Hits: 14.636 ]

Por: Perfil removido em 14/10/2022


Bônus: toolbox-shortcuts



Usando o Fedora Silverblue no dia dia, percebi que faltava um ponto de integração entre host e contêiner, e como não achei nada parecido que fizesse o que eu precisava, resolvi escrever um utilitário: toolbox-shortcuts.

Basicamente, é um script que mapeia quaisquer executáveis de um contêiner toolbox para o host e outros contêineres, usando apenas links simbólicos. Isso ajuda a manter a compatibilidade com aplicações do host com executáveis em um contêiner. Esse tipo de coisa se torna necessário em um sistema operacional imutável, e por isso achei ideal mencionar esse utilitário.

Casos de uso

- Criei uma ação no Dolphin que utiliza scripts do ImageMagick para converter imagens, o qual está instalado em um contêiner. Com o toolbox-shortcuts, consigo criar um link simbólico para o executável "convert" e toda a integração com o Dolphin irá funcionar normalmente.

- A IDE - que está instalada no host - precisa de um executável "javac" (compilador java) no $PATH do meu host. Da mesma forma, posso criar um link simbólico com toolbox-shortcuts para fornecer um executável javac no meu sistema host.

- Instalei um conversor de vídeos no host e ele depende do "ffmpeg" que está instalado em um contêiner. Pelo toolbox-shortcuts, consigo criar um link para o executável do ffmpeg e utilizá-lo normalmente no conversor ou em qualquer parte do meu sistema.

Como usar

Imagine o seguinte cenário:
  • executável do Visual Studio Code (code) no container1;
  • executável do node no container2;
  • executável yarn no container2;
  • executável java no container3.

Para integrar todos esses executável ao host, basta executar:

toolbox-shortcuts create ~/.local/bin/code container1
Shortcut created: code [ container1 ]
toolbox-shortcuts create ~/.local/bin/node container2
Shortcut created: node [ container2 ]
toolbox-shortcuts create ~/.local/bin/yarn container2
Shortcut created: yarn [ container2 ]
toolbox-shortcuts create ~/.local/bin/java container3
Shortcut created: java [ container3 ]
Agora é possível executar o comando code, o node, o yarn e o java do host ou através do container1, container2 ou container3. O toolbox-shortcuts consegue identificar qual a origem do executável e consegue executá-lo de qualquer lugar do sistema, inclusive em outros contêineres.

Gerenciadores de pacotes

Gerenciadores de pacotes como "dnf", "yum", "apt", "apt-get", "pacman", "zypper", também funcionam normalmente. Por exemplo, para instalar o php-cli do host usando o dnf:

toolbox-shortcuts create ~/.local/bin/dnf containername
Shortcut created: dnf [ ⬢ containername ]
dnf update
...
dnf install php-cli
...
toolbox-shortcuts create ~/.local/bin/php containername
Shortcut created: php [ ⬢ containername ]
php -v
...
Com isso, eu posso também criar um contêiner com Arch Linux e criar um link simbólico para o pacman, e consigo utilizar tanto o "dnf" quanto o "pacman" através do host.

Como os gerenciadores são executados de dentro de um contêiner - assim como qualquer outra aplicação - não é necessário digitar sudo antes do comando.

Instalação

Clone o repositório para uma nova pasta em ~/.local/opt:

git clone https://github.com/RuanKlein/toolbox-shortcuts.git ~/.local/opt/toolbox-shortcuts

Supondo que a pasta ~/.local/bin esteja em seu $PATH, crie um link simbólico para o utilitário cli:

ln -s ~/.local/opt/toolbox-shortcuts/toolbox-shortcuts ~/.local/bin

Com isso, o toolbox-shortcuts foi instalado corretamente em seu sistema.
Página anterior     Próxima página

Páginas do artigo
   1. Imutabilidade
   2. Atualizações atômicas
   3. OSTree
   4. Gerenciamento de software
   5. Bônus: toolbox-shortcuts
   6. Finalização
Outros artigos deste autor

Agora SIM, aMSN com suporte a anti-aliasing

LibreOffice - Utilizando macro para preencher um documento no Writer

Convertendo MBR para GPT com gdisk

Recuperando senhas de e-mails esquecidas usadas no Claws-Mail

Clonezilla - Servidor de imagens (Parte II)

Leitura recomendada

SuSE Linux 9.1 - O poderoso e versátil Linux da Novell

Conceituação de DNS

Instalação do Zabbix 1.6 no CentOS 5

OpenSUSE - Uma ótima opção de distribuição

Mamãe, quero descompactar e também compactar arquivos no terminal!

  
Comentários
[1] Comentário enviado por caslubas em 16/10/2022 - 15:21h

Excelente artigo!

[2] Comentário enviado por xerxeslins em 17/10/2022 - 09:13h


Vou favoritar, porque acredito que será leitura obrigatória para quem for usar um sistema imutável desses.

--
Chega uma hora na vida que você só quer bater o prego e não perder tempo estudando a ciência da construção de um martelo.

[3] Comentário enviado por removido em 17/10/2022 - 12:29h


[1] Comentário enviado por caslubas em 16/10/2022 - 15:21h

Excelente artigo!


Obrigado!

[4] Comentário enviado por removido em 17/10/2022 - 12:52h


[2] Comentário enviado por xerxeslins em 17/10/2022 - 09:13h


Vou favoritar, porque acredito que será leitura obrigatória para quem for usar um sistema imutável desses.

--
Chega uma hora na vida que você só quer bater o prego e não perder tempo estudando a ciência da construção de um martelo.



Um complemento, é que algumas distros imutáveis seguem uma abordagem um pouco diferente, pois não fazem uso do OSTree. Nesse caso, o OSTree se aplica ao Silverblue/Kinoite, Endless OS, e GNOME OS, mas não ao MicroOS, este faz uso do BTRFS para criar snapshots antes de qualquer atualização atômica.

Mas com exceção do OSTree/rpm-ostree, o flatpak e o toolbox são ferramentas universais nesse tipo de sistema. Inclusive, uma dica: no lugar do toolbox, pode ser utilizado o distrobox, o qual seria mais fácil para quem está iniciando nesse tipo de sistema.

[5] Comentário enviado por maurixnovatrento em 23/10/2022 - 13:23h


Excelente artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10

[6] Comentário enviado por Creto em 01/01/2023 - 07:48h

O artigo está de parabéns! Até porque eu li e concordei com o "que está escrito", mas discordo em um uso de um sistema feito para ser esse modelo em que eu não posso alterar, ou quem sabe corrigí-lo, como quase sempre faço.


Uso GNU/Linux sou livre, papa-chibé e açaí (mas é açaí mesmo aqui do Pará)
BigLinux 22.0.0 Sikaris, Manjaro Plasma 22.0.0 Sikaris, PCLinuxOS versão BR Plasma

[7] Comentário enviado por removido em 01/01/2023 - 08:53h


[6] Comentário enviado por Creto em 01/01/2023 - 07:48h

O artigo está de parabéns! Até porque eu li e concordei com o "que está escrito", mas discordo em um uso de um sistema feito para ser esse modelo em que eu não posso alterar, ou quem sabe corrigí-lo, como quase sempre faço.


Uso GNU/Linux sou livre, papa-chibé e açaí (mas é açaí mesmo aqui do Pará)
BigLinux 22.0.0 Sikaris, Manjaro Plasma 22.0.0 Sikaris, PCLinuxOS versão BR Plasma


Obrigado pelo comentário.


Contribuir com comentário