Estou tendo algumas dificuldades para entender a diferença entre PATHe LD_LIBRARY_PATH. Eu tenho uma instalação que precisa de um arquivo pkg.tcl e não estou onde adicionar o caminho: deve ser PATHou LD_LIBRARY_PATH?
Em relação ao seu problema de instalação, pessoalmente eu apostaria TCLLIBPATH. Desculpe, não tenho argumento. Apenas uma dica.
manatwork
Respostas:
30
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, binrepresentava 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 PATHvariá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 PATHvariá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).
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, /libe em alguns outros). O nome LDvem da dinâmica l oa d er , o componente do sistema que carrega bibliotecas em executáveis ligados dinamicamente .
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.
TCLLIBPATH
. Desculpe, não tenho argumento. Apenas uma dica.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 naPATH
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 nomeLD
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
.fonte
PATH
é para especificar diretórios de programas executáveis.LD_LIBRARY_PATH
é usado para especificar diretórios de bibliotecas.fonte
PATH
é usado principalmente pelo shell, enquantoLD_LIBRARY_PATH
é usado pelo carregador dinâmico (geralmenteld-linux.so
).