Slackjeff Wiki

Bits que significam

Ferramentas do usuário

Ferramentas do site


utils:dotfiles:stow

Essa é uma revisão anterior do documento!


Tabela de conteúdos

GNU Stow

A partir da documentação, com o comando man stow, podemos verificar que ele foi criado para auxiliar que pacotes compilados da fonte pudesse ter seus binários linkados para os diretórios padrão, permitindo assim uma maior flexibilidade sobre qual versão poderíamos usar no sistema, isto é, o ususário compila em seu diretório pessoal e faz os links simbólicos dentro dos diretórios padrão, por exemplo, /usr/local/bin/emacs será um link para o binário emacs dentro de um diretório que possue o emacs compilado direto da fonte.

Hoje os gerenciadores de pacote modernos já constroem os links e muitos como o Nix e o Guix conseguem gerenciar versões distintas do mesmo pacote de uma forma até simples, então o que resta de funcionalidade para o stow?

Instalação

Em sistemas tipo Debian, apenas faça

$ sudo apt install stow

Uso básico

Vou usar como exemplo duas configurações básicas, uma que geralmente está em todos os diretórios pessoais logo na raiz, o arquivo .bashrc, e outra está escrita dentro da pasta .config/qutebrowser, para ilustrar arquivos de configurações de aplicativos que deixam suas configurações dentro do diretório .config.

Primeiramente vamos organizar nossos dotfiles dentro de um diretório para esse propósito, posteriormente podemos usar o git para gerenciar o versionamento desses arquivos e subir os mesmos para um serviço como o github ou o codeberg, assim teremos nossas configurações sempre salvas há um comando de distância para termos todas as configurações de volta. Crie um diretório dos dotfiles, por exemplo

$ mkdir ~/dotfiles

Agora queremos que nossa primeira configuração seja do bash então

$ cd dotfiles
$ mkdir bash

e adicionamos o arquivo .bashrc dentro desse diretório, de preferência já com as personalizações que você fez ao longo do uso de seu sistema e deseja armazená-las.

Para adicionar esse arquivo basta dentro do diretório dotfiles usar o stow

$ stow -t /home/username bash

Agora pode verificar que seu arquivo ~/.bashrc é um link simbólico para o arquvo armazenado em ~/dotfiles. veja que usamos -t isso indica o alvo (target) para o qual queremos que o link seja contruído e bash indica o aplicativo o qual queremos adicionar os dotfiles, nesse caso só existe um arquivo .bashrc.

Vamos a mais um exemplo, agora o arquivos não fica na raiz do diretório do username mas sim no diretório oculto de configurações (.config). Em nosso diretório ~/dotfiles vamos criar a pasta do pacote que iremos armazenar as configurações

$ mkdir qutebrowser
$ mkdir qutebrowser/.config
$ mkdir qutebrowser/.config/qutebrowser

Dentro do último diretório criado podemos adicionar o arquivo config.py que contém as configurações personalizadas do navegador qutebrowser, que desejamos guardar. Agora basta usar o stow, sempre dentro da pasta dotfiles

stow -t /home/username qutebrowser

Resumo

A sintaxe básica é

$ stow -t /home/username package

Claro que dentro de seu diretório de dotfiles, trocando o username pelo seu nome de usuário e package pelo pacote que você organizou os dotfiles dele dentro desse caminho.

Para construir tudo de uma vez só

$ stow -t /home/username * --restow

Assim todos os pacotes organizados no /dotfiles serão linkados no target (-t), a opção –restow é usual para remover links simbólicos que você não usa mais, caso não use esse opção os links antigos irão continuar.

utils/dotfiles/stow.1741025683.txt.gz · Última modificação: 2025/03/03 15:14 por orahcio