我只是想关注这邮政。
我将“/some/directory/”替换为“/usr/lib/x86_64_linux-gnu/”,结果
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64_linux-gnu/
现在当我输入
printenv LD_LIBRARY_PATH
它打印
:/usr/lib/x86_64-linux-gnu/
我想知道:是否正确,如果不正确,我该做些什么不同的事情。
我很困惑为什么作者使用
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/some/directory/
“$” 和 “:” 起什么作用?
答案1
LD_LIBRARY_PATH 是路径的集合,每个路径都以一个目录结尾(因此您不会在其中包含特定的库,如 libcudnn_cnn_infer.so.8),在该目录中搜索库,就像列出查找可执行程序的位置的正常 PATH 一样。
如果有多个路径,则冒号 (:) 是路径之间的分隔符。
这
export xy_PATH=$xy_PATH:/abc
模式是一种常见模式,例如,当系统范围设置在 /etc 中的系统范围配置文件中声明,但后来由用户特定配置文件在其 /$HOME/.xyconf 中扩展时。用户采用已定义的内容并对其进行扩展。
冒号是 shell 的自动分隔符,因为它不能成为变量名的一部分。这使得它很容易扩展。否则,你必须写成export xy_PATH=${xy_PATH}:/abc
。还要注意,冒号前面的空白部分是无害的,这使得组合更健壮。