我首先执行了命令: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
不会显示任何结果。
如何永久设置路径?
$
,例如 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH
sudo ldconfig
$ source ~/.bash_profile
吗?我倾向于忘记这一点。然后像@neckTwi 说运行 ldconfig
您应该添加有关您的发行版的更多详细信息,例如在 Ubuntu 下,正确的做法是将自定义 .conf
文件添加到 /etc/ld.so.conf.d
,例如
sudo gedit /etc/ld.so.conf.d/randomLibs.conf
在文件中,您应该写入包含您希望添加到系统的所有库的目录的完整路径,例如
/home/linux/myLocalLibs
请记住只添加目录的路径,而不是文件的完整路径,该路径内的所有库都将被自动索引。
保存并运行 sudo ldconfig
以使用此库更新系统。
保留之前的路径,不要覆盖它:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/
您可以将其添加到您的 ~/.bashrc
:
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/' >> ~/.bashrc
mv ~/.bashrc ~/.bash_profile
具有相同的代码和相同的文件权限。然后它起作用了。这是在 Ubuntu 20.04.1 LTS 上。如果没有此文件重命名,LD_LIBRARY_PATH
在重新登录时仍将为空。 .bashrc 是用户的 rwx,所以它应该可以正常执行。手动执行它也不会设置 LD_LIBRARY_PATH
(有点预期),并且采购它(. ./.bashrc
)确实设置了它。很奇怪,我希望它是 Ubuntu 20.04.1 LTS 特有的。
添加
LD_LIBRARY_PATH="/path/you/want1:/path/you/want/2"
/etc/environment
请参阅 Ubuntu Documentation。
更正:我应该接受自己的建议并实际阅读文档。它说这不适用于 LD_LIBRARY_PATH:由于 Ubuntu 9.04 Jaunty Jackalope,LD_LIBRARY_PATH 不能在 $HOME/.profile、/etc/profile 和 /etc/environment 文件中设置。您必须使用 /etc/ld.so.conf.d/.conf 配置文件。* 所以 user1824407's answer 是正确的。
或者,您可以使用指定的库目录执行程序:
/lib/ld-linux.so.2 --library-path PATH EXECUTABLE
文件 .bash_profile
仅由登录 shell 执行。您可能需要将其放入 ~/.bashrc
中,或者只需注销并重新登录。
出于某种原因,没有人提到 bashrc 需要在编辑后重新获取资源这一事实。您可以注销并重新登录(如上所述),但您也可以使用命令:source ~/.bashrc
或 . ~/.bashrc
。
将 export LD_LIBRARY_PATH=/usr/local/lib
放入 ~/.bashrc
[最好在脚本末尾以避免任何覆盖,默认 ~/.bashrc
带有许多 if-else
语句]
发布每当您打开新终端/控制台时,都会反映 LD_LIBRARY_PATH
转到主文件夹并编辑 .profile 将以下行放在末尾 export LD_LIBRARY_PATH=
您可以尝试添加自定义脚本,例如 /etc/profile.d
中的 myenv_vars.sh
。
cd /etc/profile.d
sudo touch myenv_vars.sh
sudo gedit myenv_vars.sh
将此添加到空文件中,然后保存。
export LD_LIBRARY_PATH=/usr/local/lib
注销和登录,LD_LIBRARY_PATH
将被永久设置。
我在 Mint 15 到 17 中执行以下操作,也适用于 ubuntu 服务器 12.04 及更高版本:
sudo vi /etc/bash.bashrc
滚动到底部,然后添加:
export LD_LIBRARY_PATH=.
所有用户都添加了环境变量。
在 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
这是我使用的步骤
在 Ubuntu 20.04 Linux 框中打开终端 通过运行 cd /etc/ld.so.conf.d/ 将路径更改为 /etc/ld.so.conf.d/ 创建一个带有 *.conf 扩展名的文件,并在末尾添加一个文本编辑器,例如 vim 或 gedit 在我的情况下,我按如下方式创建它/lib 此后,我然后运行 gedit ~/.bash_profile 打开 ~/.bash_profile 文件,以便我可以在其中添加这一行 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib ,其中包括我的库文件夹的路径/我希望包含在 LD_LIBRARY_PATH 中的 usr/lib 我还运行 gedit ~/.bashrc 打开 ~/.bashrc 文件,以便我可以在其中添加这一行 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib ,其中包括包含我想要包含在 LD_LIBRARY_PATH 中的库 /usr/lib 的文件夹 当您在步骤 5 中添加完该行后,保存并关闭。在您的终端中,键入以下 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 机器上为我工作的方式。
不定期副业成功案例分享
/usr/local/lib
通常已经存在,因此无需编辑任何文件,只需sudo ldconfig
。'ImportError: libpq.so.5: cannot open shared object file: No such file or directory
错误。使用以下命令找到路径:$ find ~/ -name libpq.so.5
然后使用@user1824407 建议:sudo vim /etc/ld.so.conf.d/pyscopg.conf
,然后是 libpg.so.5 的 SageMaker 位置:/home/ec2-user/anaconda3/envs/JupyterSystemEnv/lib/
,然后运行 sudo ldconfig。魔法。echo $LD_LIBRARY_PATH
也是空的......(Ubuntu 20.04)