De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Alexei Znamensky
Data de Publicação: 16 de Janeiro de 2003
Uma coisa que acontece no Linux (ou Unix) é, após compilarmos e instalarmos vários softwares no /usr/local, não sabemos mais qual arquivo pertence a qual software, o que pode ser uma chateação na hora de atualizar a versão do software, ou mesmo removê-lo simplesmente.
Para isso uma ferramenta simples e muito poderosa é o GNU stow:
http://www.gnu.ai.mit.edu/software/stow/stow.html
Com o stow, que é simplesmente um script perl, único e sem módulos externos, compilamos e instalamos(*) os softwares em algo parecido com:
/usr/local/stow/emacs-21.2 /usr/local/stow/libpng-1.2.4 /usr/local/stow/mrtg-2.9.25 /usr/local/stow/<nome do pacote, recomendamos que use a versão>
Dentro desses diretórios, teremos subdiretórios, por exemplo:
/usr/local/stow/mrtg-2.9.25/bin /usr/local/stow/mrtg-2.9.25/doc /usr/local/stow/mrtg-2.9.25/etc /usr/local/stow/mrtg-2.9.25/lib /usr/local/stow/mrtg-2.9.25/man ...
Então executamos os seguintes comandos, como "root":
# cd /usr/local/stow # stow -vv mrtg-2.9.25 (o parâmetro -vv serve apenas para fazer o stow mais "verbose", o que irá fazer com que ele mostre uma mensagem para cada operação que ele for executar realmente)
ou "stow -v *", ou apenas os diretórios que você desejar. O stow irá então criar links simbólicos em /usr/local/ apontando para os equivalentes em /usr/local/stow/mrtg-2.9.25. No nosso exemplo, ele irá criar os links:
/usr/local/bin/cfgmaker -> ../stow/mrtg-2.9.25/bin/cfgmaker /usr/local/bin/indexmaker -> ../stow/mrtg-2.9.25/bin/indexmaker /usr/local/bin/mrtg -> ../stow/mrtg-2.9.25/bin/mrtg /usr/local/bin/rateup -> ../stow/mrtg-2.9.25/bin/rateup /usr/local/doc/mrtg2 -> ../stow/mrtg-2.9.25/doc/mrtg2/ /usr/local/lib/mrtg2 -> ../stow/mrtg-2.9.25/lib/mrtg2/ /usr/local/share/mrtg2 -> ../stow/mrtg-2.9.25/share/mrtg2/ ...
e assim por diante.
A grande vantagem é que todos os arquivos ficam disponíveis, através dos links, nos caminhos padronizados: /usr/local/bin, /usr/local/sbin, /usr/local/lib, /usr/local/man, o que em muitos casos elimina a necessidade de configuração de variáveis (ex: PATH, LD_LIBRARY_PATH, MANPATH, ...) de ambiente para os usuários.
O stow é espertinho, e detecta conflitos (dois ou mais arquivos que iriam gerar o mesmo link), também cria e remove diretórios para árvores compartilhadas, por exemplo, para os arquivos:
/usr/local/stow/ezmlm-0.53/man/man1/ezmlm-list.1 /usr/local/stow/mrtg-2.9.25/man/man1/mrtg.1
o stow cria o diretório
/usr/local/man/man1
e dentro dele cria os links apontando, cada um para o diretório do software correspondente. Automagicamente.
Para remover um programa instalado sob o stow, basta:
# cd /usr/local/stow # stow -D mrtg-2.9.25 (por exemplo) # rm -rf ./mrtg-2.9.25
Há muitas outra brincadeiras que podem ser feitas usando o stow, como por exemplo manter várias versões do mesmo software, ou criar um mini-árvore com os seus scripts para levar de um lado para outro, mas esta dica já está comprida o bastante. Divirtam-se!!!
(*) Na maioria dos casos, quando você quiser compilar e instalar um software sob a árvore do stow, você deverá executar os comandos:
# ./configure --prefix=/usr/local/stow/mrtg-2.9.25 ...(passa um monte de coisas pela tela...) # make ...(idem) # make install ...(idem)
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários