Qual é a diferença entre PATH e LD_LIBRARY_PATH?

23

Estou tendo algumas dificuldades para entender a diferença entre PATH e LD_LIBRARY_PATH . Eu tenho uma configuração de instalação que precisa de um arquivo pkg.tcl e não estou onde adicionar o caminho para ele: deve ser para PATH ou LD_LIBRARY_PATH ?

    
por cindy 08.08.2012 / 04:35

2 respostas

22

Os sistemas Unix tendem a ser organizados com diferentes tipos de arquivos espalhados por diferentes diretórios. Por exemplo, os executáveis geralmente estão em diretórios chamados bin ( /bin , /usr/bin , /usr/local/bin ,…); Historicamente, bin era binário, porque os executáveis são binários (código de máquina), mas também podem existir scripts. Como existem vários diretórios que contêm executáveis, e é útil adicionar e remover diretórios rapidamente (por exemplo, para testar um aplicativo multi-executável, você o adiciona temporariamente ao caminho de busca para executáveis), existe uma variável de ambiente para isso: %código%. Quando você executa um programa dando seu nome, o shell procura nos diretórios mencionados na variável PATH (é uma lista de diretórios separada por dois pontos).

O mesmo mecanismo existe para outros tipos de arquivos que alguns programas procurarão por nome. Aqui estão algumas variáveis típicas de PATH -like (note que os caminhos de exemplo que eu dou não são exatamente o que você encontrará em seu sistema, há apenas para dar uma idéia).

  • PATH : executáveis (por exemplo, PATH ).
  • /home/username/bin:/usr/local/bin:/usr/bin:/bin : páginas de manual (por exemplo, MANPATH ).
  • /usr/local/man:/usr/man : bibliotecas de código nativo (no Linux, além do valor dessa variável, o caminho de pesquisa geralmente contém LD_LIBRARY_PATH , /usr/local/lib , /usr/lib e alguns outros). O nome /lib vem de dinâmico l o d er , o componente do sistema que carrega bibliotecas em executáveis dinamicamente vinculados .
  • LD : bibliotecas Perl (por exemplo, PERL5LIB ).
  • /usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl : bibliotecas Python (por exemplo, PYTHONPATH ).
  • /usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6 : bibliotecas TCL (por exemplo, TCLLIBPATH ).

Portanto, se o seu /usr/local/lib/tcltk:/usr/lib/tcltk for um executável autônomo, conceda a ele permissões de execução e solte-o em algum lugar em pkg.tcl . Se é uma biblioteca TCL carregada por um programa TCL, solte-a em algum lugar em $PATH .

    
por 09.08.2012 / 02:46
20

PATH é para especificar diretórios de programas executáveis. LD_LIBRARY_PATH é usado para especificar diretórios de bibliotecas.

    
por 08.08.2012 / 04:51

Tags