Slackjeff Wiki

Bits que significam

Ferramentas do usuário

Ferramentas do site


utils:dotfiles:stow

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
utils:dotfiles:stow [2025/03/03 14:14] – criada hrcerqutils:dotfiles:stow [2025/03/03 15:16] (atual) – [Resumo] orahcio
Linha 1: Linha 1:
 ====== GNU Stow ====== ====== 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
 +<code>
 +$ sudo apt install stow
 +</code>
 +
 +===== 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 [[https://www.github.com|github]] ou o [[https://www.codeberg.org|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
 +<code>
 +$ mkdir ~/dotfiles
 +</code>
 +
 +Agora queremos que nossa primeira configuração seja do //bash// então
 +<code>
 +$ cd dotfiles
 +$ mkdir bash
 +</code>
 +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//
 +<code>
 +$ stow -t /home/username bash
 +</code>
 +
 +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
 +<code>
 +$ mkdir qutebrowser
 +$ mkdir qutebrowser/.config
 +$ mkdir qutebrowser/.config/qutebrowser
 +</code>
 +
 +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//
 +<code>
 +stow -t /home/username qutebrowser
 +</code>
 +
 +===== Resumo =====
 +
 +A sintaxe básica é
 +<code>
 +$ stow -t /home/username package
 +</code>
 +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ó
 +<code>
 +$ stow -t /home/username * -R
 +</code>
 +
 +Assim todos os pacotes organizados no ///dotfiles// serão linkados no //target// (**-t**), a opção **-R** (//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.1741022057.txt.gz · Última modificação: 2025/03/03 14:14 por hrcerq