Essa é uma revisão anterior do documento!
Tabela de conteúdos
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
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.