如何在bashrc中为多个位置设置路径

如何在bashrc中为多个位置设置路径,bash,Bash,我在两个不同的位置安装相同的库(可能有不同的版本)。现在,我在bashrc中导出这两个对象的路径。在linux中,如果我在某个程序中调用库,会使用哪一个? 例如: mylib_version1安装在/home/PATH1/lib中, mylib_version2安装在/home/PATH2/lib中 在巴什尔,我知道 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/PATH1/lib export LD_LIBRARY_PATH=$LD

我在两个不同的位置安装相同的库(可能有不同的版本)。现在,我在bashrc中导出这两个对象的路径。在linux中,如果我在某个程序中调用库,会使用哪一个? 例如: mylib_version1安装在/home/PATH1/lib中, mylib_version2安装在/home/PATH2/lib中

在巴什尔,我知道

    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:/home/PATH/bin


它总是从/usr/local/bin获取。

如果我理解正确,您有
库。因此
有两个版本,并且您有一个可能使用
库的二进制文件。因此
版本1或2

要解决这个问题,您必须首先理解库版本机制的含义。所有库都应该放在同一个位置,您可能会有这样的内容:

/usr/lib/library.so.1.0.0
/usr/lib/library.so.2.0.0
您的二进制文件将根据构建过程中使用的API和链接链接链接到正确的库


请阅读有关库的更多信息

hi,这是我的问题,如果我选择(例如)哪个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?