Slackjeff Wiki

Juntando bits aprendemos juntos

Ferramentas do usuário

Ferramentas do site


so:pacotes:guix

Essa é uma revisão anterior do documento!


Guix

O guix é um gerenciador de pacotes que funciona em qualquer sistema Linux com algumas funcionalidades interessantes. O gerenciamento puro e simples dos pacotes a serem instalados, com a vantagem de não necessitar de privilégios de superusuário após a instalaçao do guix. Também é possível usá-lo para criar containers dentro dos chamados guix shell. Portanto o gerenciamento de pacotes dele permite a criação de ambientes controlados.

Como o próprio manual do guix define

> GNU Guix é uma ferramenta de gerenciamento de pacotes e distribuição do sistema GNU. O Guix facilita a instalação, a atualização ou a remoção de pacotes de software, a reversão para um conjunto de pacotes anterior, a compilação de pacotes a partir do código-fonte e geralmente ajuda na criação e manutenção de ambientes de software.

O uso do guix para além do gerenciamento com as funcionalidades como as descritas acima é a construção de ambientes controlados, que pode ser compreendido como uma alternativa a chroot, containers (docker ou podman), etc. Nesses ambientes podemos escolher quais pacotes irão compor o mesmo, se terá acesso á rede externa, certificados compartilhados, etc.

E claro é possível usá-lo apenas para instalar e remover pacotes, não os misturando com seu sistema.

Existe também o Guix System que é uma distribuição Linux inteiramente baseada nesse gerenciador de pacotes, mas que está fora do escopo desta postagem.

Instalação

Num sistema como o debian ou arch basta executar o script oficial de instalação com privilégios de super usuário

Aqui temos que avisar que não é muito recomendado a execução de scripts de terceiros baixados da internet. Porém neste caso o projeto é tão confiável quanto os projetos que criaram o debian ou o arch linux.

Portanto faça no terminal:

cd /tmp
wget https://guix.gnu.org/guix-install.sh
chmod +x guix-install.sh
./guix-install.sh

usando su para executar todos os comando acima como root ou adicionar sudo no início da linha de execução do script.

Se preferir use o pacote oficial de sua distribuição linux. No debian

sudo apt install guix

No arch o pacote AUR não procede todas as configurações necessárias, fica sendo um processo de instalação completamente manual, portanto é mais fácil instalar pelo script oficial.

Configuração adicional

Para que os pacotes instalados pelo guix estejam acessíveis para seu perfil, é necessário informar o diretório dos binários, um script simples é sugerido pelo próprio gerenciador após você proceder com o comando guix sem nenhuma opção, apenas para verificar se a instalação foi bem sucedida. A saída será essa

GUIX_PROFILE="$HOME/.guix-profile"
. "$GUIX_PROFILE/etc/profile"

basta adicionar essas linhas no seu .bashrc ou no seu .profile.

Uso básico

Buscar pacotes

guix search nome_do_pacote

pode utilizar parte do nome apenas, o problema será a saída extensa com todas as correspondências.

Intalar pacotes

guix install pacote1 pacote2 …

Desinstalar pacotes

guix remove pacote1 pacote2 …

Você pode se assustar pela velocidade em que uma pacote é desistalado, isso ocorre porque o guix apenas desvincula aquele pacote do perfil atual. Para que os arquivos possam ser removidos de fato, será necessária uma coleta de lixo com o comando

guix gc

Se preferir faça a coleta de lixo de forma periódica especificando a idade é que os arquivos estão armazenados, por exemplo, para uma coleta de lixo de arquivos mais velhos que uma semana faça

guix gc -d 1w

Isso indica que o primeiro comando irá excluir tudo que não esteja sendo usado pelo perfil, enquanto que o último mesmo que existam arquivos não sendo usados, mas que tenham sido armazenados a menos de uma semana (flag, -d 1w), tais arquivos irão permanecer.

Essa funcionalidade é útil pois existem certas bibliotecas que são compartilhadas por vários pacotes. Então se um pacote é tirado do perfil mas trouxe com ele algumas bibliotecas, e num outro momento você queira instalar outro pacote que usa algumas das mesmas bibliotecas do pacote anterior, elas já não serão necessárias mais serem baixadas, apenas revinculadas ao perfil deixando de ser lixo.

so/pacotes/guix.1772107655.txt.gz · Última modificação: por orahcio