Respostas:
Os sistemas Unix tendem a ser organizados com diferentes tipos de arquivos espalhados por diferentes diretórios. Por exemplo, executáveis são geralmente em diretórios chamados bin
( /bin
, /usr/bin
, /usr/local/bin
, ...); historicamente, bin
representava binário, porque os executáveis são binários (código de máquina), mas também pode haver scripts. Como existem vários diretórios que contêm executáveis e é útil adicionar e remover diretórios imediatamente (por exemplo, para testar um aplicativo multi-executável, você o adiciona temporariamente ao caminho de busca de executáveis), existe uma variável de ambiente para isso: PATH
. Quando você executa um programa fornecendo seu nome, o shell o pesquisa nos diretórios mencionados na PATH
variável (é uma lista de diretórios separados por dois pontos).
O mesmo mecanismo existe para outros tipos de arquivos que algum programa procurará pelo nome. Aqui estão algumas PATH
variáveis típicas (observe que os caminhos de exemplo que eu dou não são exatamente o que você encontrará em seu sistema, existe apenas para dar uma idéia).
PATH
: executáveis (por exemplo /home/username/bin:/usr/local/bin:/usr/bin:/bin
).MANPATH
: páginas de manual (por exemplo /usr/local/man:/usr/man
).LD_LIBRARY_PATH
: Bibliotecas de código nativo (em Linux, em adição ao valor dessa variável, o caminho de pesquisa contém, tipicamente, /usr/local/lib
, /usr/lib
, /lib
e em alguns outros). O nome LD
vem da dinâmica l oa d er , o componente do sistema que carrega bibliotecas em executáveis ligados dinamicamente .PERL5LIB
: Bibliotecas Perl (por exemplo /usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl
).PYTHONPATH
: Bibliotecas Python (por exemplo /usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6
).TCLLIBPATH
: Bibliotecas TCL (por exemplo /usr/local/lib/tcltk:/usr/lib/tcltk
).Portanto, se você pkg.tcl
é um executável independente, conceda permissões de execução e solte-o em algum lugar $PATH
. Se for uma biblioteca TCL carregada por um programa TCL, solte-a em algum lugar $TCLLIBPATH
.
PATH
é para especificar diretórios de programas executáveis. LD_LIBRARY_PATH
é usado para especificar diretórios de bibliotecas.
PATH
é usado principalmente pelo shell, enquanto LD_LIBRARY_PATH
é usado pelo carregador dinâmico (geralmente ld-linux.so
).
TCLLIBPATH
. Desculpe, não tenho argumento. Apenas uma dica.