Organizando o /usr/local/ com o GNU stow
  ========================================

Colabora��o: Alexei Znamensky <[EMAIL PROTECTED]>

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).


Adeilson de Oliveira
   Integradora T.H.S. do Brasil
  [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
  Fone: 55 + (0xx11) 4992-9111


Assinantes em 16/01/2003: 2247
Mensagens recebidas desde 07/01/1999: 197276
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista: 
            mailto:[EMAIL PROTECTED]

Responder a