【发布时间】:2016-03-14 15:05:54
【问题描述】:
我在两个不同的位置安装相同的库(可能具有不同的发行版本)。现在我正在为两者导出 bashrc 中的路径。在 linux 中,如果我在某个程序中调用库,会采用哪一个? 例如: mylib_version1 安装在 /home/PATH1/lib 中, mylib_version2 安装在 /home/PATH2/lib
我在 bashrc 中,
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/PATH1/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/PATH2/lib
调用这个库时,其他程序实际采用的是哪条路径? bashrc 中的排序是如何工作的?
类似地,当 PATH1 只是 /usr/local/lib 时会发生什么(我不在 bashrc 中导出) PATH2 是一些用户定义的路径。 我对某些程序的体验是,如果我将它安装在 /usr/local/bin 如果我使用 /home/PATH/bin 之类的前缀安装并将其导出到 bashrc 中 导出 PATH=$PATH:/home/PATH/bin
它总是取自 /usr/local/bin。
【问题讨论】:
-
嗨,这是我的问题,如果我(例如)执行 which lhapdf,它会返回路径 /usr/local/bin/lhapdf,即使我在 /usr/local 的两个地方都有它/bin/ 和一些预定义的地方,如 PATH2(在 bashrc 中导出但未使用)
-
以先到者为准。在这种情况下,它是
/home/PATH1/lib。 -
多次使用
export是完全多余的。 -
@4ae1e1 如果其中一个路径是 /usr/local/lib (不在 bashrc 中)而另一个是 /home/PATH1/lib (在 .bashrc 中),会发生什么?我看到它总是来自 /usr/local/lib。有什么方法可以从 bashrc 中获取,即 /home/PATH1/lib ?
标签: bash