PATH和LD_LIBRARY_PATH有什么区别?


27

我有一些困难的理解之间的差异PATHLD_LIBRARY_PATH。我有一个需要文件pkg.tcl的安装设置,我没有在其中添加路径的地方:应该是PATH还是LD_LIBRARY_PATH


关于您的安装问题,我个人会打赌TCLLIBPATH。抱歉,我没有论点。只是一个提示。
manatwork'8

Answers:


30

Unix系统倾向于使用分布在不同目录中的不同类型的文件来组织。例如,可执行文件通常是在一个名为目录bin/bin/usr/bin/usr/local/bin,...); 在过去,bin二进制文件代表二进制文件,因为可执行文件是二进制文件(机器代码),但是也可以有脚本。由于有几个包含可执行文件的目录,并且动态添加和删除目录很有用(例如,为了测试多可执行应用程序,您可以将其临时添加到可执行文件的搜索路径中),因此存在一个环境变量:PATH。通过给出程序名称执行程序时,shell在PATH变量提到的目录中查找它(这是一个用冒号分隔的目录列表)。

对于某些程序要通过名称搜索的其他类型的文件,存在相同的机制。这是一些典型PATH的类似变量(请注意,我给出的示例路径与您在系统上找不到的完全一样,只是在这里提供了一个思路)。

  • PATH:可执行文件(例如/home/username/bin:/usr/local/bin:/usr/bin:/bin)。
  • MANPATH:手册页(例如/usr/local/man:/usr/man)。
  • LD_LIBRARY_PATH:本机代码库(在Linux上,除了这个变量的值,查找路径通常包括/usr/local/lib/usr/lib/lib和其他几个人)。这个名字LD来源于动态 OA d,系统组件加载到库动态链接的可执行文件
  • PERL5LIB:Perl库(例如/usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl)。
  • PYTHONPATH:Python库(例如/usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6)。
  • TCLLIBPATH:TCL库(例如/usr/local/lib/tcltk:/usr/lib/tcltk)。

因此,如果您pkg.tcl是独立的可执行文件,请为其授予执行权限,然后将其放在中$PATH。如果它是由TCL程序加载的TCL库,请将其放在中$TCLLIBPATH


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.