290

我首先执行了命令:export LD_LIBRARY_PATH=/usr/local/lib

然后我打开了.bash_profile文件:vi ~/.bash_profile. 在这个文件中,我放了:

LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

然后,如果终端关闭并重新启动,则键入echo $LD_LIBRARY_PATH不会显示任何结果。

如何永久设置路径?

4

11 回答 11

257

You should add more details about your distribution, for example under Ubuntu the right way to do this is to add a custom .conf file to /etc/ld.so.conf.d, for example

sudo gedit /etc/ld.so.conf.d/randomLibs.conf

inside the file you are supposed to write the complete path to the directory that contains all the libraries that you wish to add to the system, for example

/home/linux/myLocalLibs

remember to add only the path to the dir, not the full path for the file, all the libs inside that path will be automatically indexed.

Save and run sudo ldconfig to update the system with this libs.

于 2012-11-17T08:32:31.187 回答
182

保留之前的路径,不要覆盖它:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/

您可以将其添加到您的~/.bashrc

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/' >> ~/.bashrc
于 2016-06-01T01:47:37.617 回答
42

添加

LD_LIBRARY_PATH="/path/you/want1:/path/you/want/2"

/etc/environment

请参阅Ubuntu 文档

更正:我应该接受自己的建议并实际阅读文档。它说这不适用于 LD_LIBRARY_PATH:由于 Ubuntu 9.04 Jaunty Jackalope,LD_LIBRARY_PATH 不能在 $HOME/.profile、/etc/profile 和 /etc/environment 文件中设置。您必须使用 /etc/ld.so.conf.d/ .conf 配置文件。* 所以user1824407 的答案是正确的。

于 2014-04-10T15:03:50.673 回答
31

或者,您可以使用指定的库目录执行程序:

/lib/ld-linux.so.2 --library-path PATH EXECUTABLE

在这里阅读更多

于 2015-12-06T17:36:04.867 回答
25

该文件.bash_profile仅由登录 shell 执行。您可能需要将其放入~/.bashrc,或者只需注销并再次登录。

于 2012-11-17T08:27:31.563 回答
18

出于某种原因,没有人提到 bashrc 需要在编辑后重新获取资源这一事实。您可以注销并重新登录(如上所述),但您也可以使用命令:source ~/.bashrc. ~/.bashrc.

于 2015-11-04T20:15:35.013 回答
15

Put export LD_LIBRARY_PATH=/usr/local/lib in ~/.bashrc [preferably towards end of script to avoid any overrides in between, Default ~/.bashrc comes with many if-else statements]

Post that whenever you open a new terminal/konsole, LD_LIBRARY_PATH will be reflected

于 2012-11-17T08:31:25.717 回答
9
  1. 转到主文件夹并编辑 .profile
  2. 将以下行放在最后

    export LD_LIBRARY_PATH=<your path>

  3. 保存并退出。

  4. 执行这个命令

    sudo ldconfig

于 2016-07-19T00:19:44.570 回答
4

您可以尝试添加自定义脚本,例如 myenv_vars.sh/etc/profile.d.

cd /etc/profile.d
sudo touch myenv_vars.sh
sudo gedit myenv_vars.sh

将此添加到空文件中,然后保存。

export LD_LIBRARY_PATH=/usr/local/lib

注销和登录,LD_LIBRARY_PATH将被永久设置。

于 2014-03-03T10:10:08.870 回答
3

我在 Mint 15 到 17 中执行以下操作,也适用于 ubuntu 服务器 12.04 及更高版本:

sudo vi /etc/bash.bashrc 

滚动到底部,然后添加:

export LD_LIBRARY_PATH=.

所有用户都添加了环境变量。

于 2014-10-24T19:36:46.087 回答
0

Ubuntu 20.04 Linux 中,这并不像它应该的那样明显和直截了当。

我将尝试让任何像我使用Ubuntu 20.04.3 Linux一样拔掉头发的人都能轻松做到这一点。

首先确定库文件文件夹所在的路径。在我的例子中,我正在使用的 * .so文件位于一个名为libs的文件夹中,并且这个文件夹在我的 Ubuntu 框中的路径是/usr/lib

所以现在我想将路径/usr/lib添加到LD_LIBRARY_PATH以便当我在我的 Ubuntu 终端中运行echo $LD_LIBRARY_PATH时,我将能够看到路径 /usr/lib回显,如下所示;

joseph$ echo $LD_LIBRARY_PATH
:/usr/lib

这是我使用的步骤

  1. 在 Ubuntu 20.04 Linux 盒子中打开终端
  2. 通过运行cd /etc/ld.so.conf.d/将路径更改为/etc/ld.so.conf.d/
  3. 使用文本编辑器 (例如vimgedit )在末尾创建一个带有 * .conf扩展名的文件,在我的情况下,我按如下方式创建它sudo gedit my_project_libs.conf
  4. 在我创建的名为my_project_libs.conf的.conf文件中,我 通过添加这一行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib添加了我的库的路径
  5. 此后,我然后运行​​gedit ~/.bash_profile打开 ~/.bash_profile文件,以便我可以在其中添加这一行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib,其中包括我的库/usr/文件夹的路径我希望包含在LD_LIBRARY_PATH中的
  6. 我还运行gedit ~/.bashrc来打开 ~/.bashrc文件,以便我可以在其中添加这一行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib,其中包括我的库/usr/lib文件夹的路径我想包含在LD_LIBRARY_PATH
  7. 在步骤 5 中添加完行后,保存关闭.
  8. 在您的终端中,键入以下sudo ldconfig并按 键盘上的enter 。关闭您正在使用的所有打开的终端,然后打开一个新的终端会话并运行 echo $LD_LIBRARY_PATH 如果您看到您添加的路径被回显,那么您做对了。

就我而言,这是我在新打开的 Ubuntu 终端会话中运行echo $LD_LIBRARY_PATH时看到的:/usr/lib

joseph$ echo $LD_LIBRARY_PATH
:/usr/lib

这就是我让它在我的Ubuntu 20.04.3 Linux 机器上为我工作的方式。

于 2022-02-04T11:25:35.373 回答