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

时间:2015-12-09 11:03:06

标签: bash

我在两个不同的位置安装相同的库(可能有不同的发行版本)。现在我在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之类的         export PATH = $ PATH:/ home / PATH / bin

它始终来自/ usr / local / bin。

1 个答案:

答案 0 :(得分:2)

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

要解决这个问题,首先必须了解库版本机制的含义。所有图书馆都应该放在同一个地方,你可能会有类似的东西:

/usr/lib/library.so.1.0.0
/usr/lib/library.so.2.0.0

根据在构建过程中使用的API和链接,您的二进制文件将链接到正确的库。

请阅读有关图书馆here

的更多信息