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: 12.993 ]

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

Como se comunicar com outros usuários da rede

Lançamento do GFP 0.1.4.5 - Gerenciador Financeiro Pessoal

Calculando máscara de sub-rede e broadcast

UEFI e Boot Seguro - Conceitos básicos

O Filho à Casa Torna

Leitura recomendada

Lógica para Computação - Parte V

Gerenciadores de pacotes GNU/Linux

Atualizando versões do openSUSE pela internet

Introdução a Lógica para computação

Instalação do Linux em pendrive com VirtualBox

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts