我先执行了命令: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
记得只添加dir的路径,而不是文件的完整路径,该路径中的所有lib都将自动编入索引。
保存并运行sudo ldconfig以使用此库更新系统。
很抱歉没有提及发行版。它的Fedora 16
您可以将此解决方案用于Fedora,Joachim Pileborg建议的解决方案如果您决定将此libs的视图限制为1个特定用户,如果您想要系统范围的lib,则应该使用我的解决方案。这一切都取决于你在寻找什么。
这真的是正确的方法吗?假设您有多个用户构建本地库,并且已将它们都添加到/etc/ld.so.conf.d中。现在用户A可以链接到用户B的本地库。不好。
我确认这适用于Fedora 20。
/usr/local/lib通常已存在,因此无需编辑任何文件,只需sudo ldconfig。
适用于xubuntu 16.04
奇怪的是,它与你们所有人一起工作,但它对我不起作用,而export LD_LIBRARY_PATH ....方式有效!!
这是解决此问题的救星:尝试导入psycopg2时SageMaker中出现'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。魔法。
保留上一个路径,不要覆盖它:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/
你可以把它添加到?/ .bashrc:
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/' >> ~/.bashrc
加
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的答案是现货。
哇,我几次看了那页,忽略了这一点。感谢您发现并引起我们的注意。
Ubuntu是一个特例。 Ubuntu的观点是所有用户都想要相同的库,并且每个库只有一个位置(在Launchpad bug#366728中阅读讨论)。但是,在多用户研究或开发系统上,您希望每个用户都能拥有自己的库版本。大多数Linux发行版允许这样做并且已经这么做了很多年。
花了4个小时试图找出为什么我可以设置PATH和PKG_CONFIG_PATH,但不是LD_LIBRARY_PATH。我甚至不能。
@MikhailCheshkov你是我!
文件.bash_profile仅由登录shell执行。您可能需要将其放在~/.bashrc中,或者只需注销并再次登录。
谢谢Joachim Pileborg。我已重启系统,现在它的路径已永久设置。
出于某种原因,没有人提到过bashrc需要在编辑后重新获得的事实。您可以注销并重新登录(如上所述),但您也可以使用命令:source ~/.bashrc或. ~/.bashrc。
或者,您可以使用指定的库目录执行程序:
/lib/ld-linux.so.2 --library-path PATH EXECUTABLE
在这里阅读更多。
非常感谢你帮助我调试!终于那是一个糟糕的道路!!!!
将export LD_LIBRARY_PATH=/usr/local/lib放在~/.bashrc [最好是脚本末尾以避免其间的任何覆盖,默认~/.bashrc带有许多if-else语句]
发布每当您打开新终端/ konsole时,LD_LIBRARY_PATH将被反映出来
很抱歉没有提及发行版。它的Fedora 16
转到主文件夹并编辑.profile
将以下行放在最后
export LD_LIBRARY_PATH=
保存并退出。
执行此命令
sudo ldconfig
您可以尝试添加自定义脚本,例如/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将永久设置。
很棒的答案。我最好选择在系统初始化期间每次导出路径,并且比物理编辑/ etc / bashrc更安全
我在Mint 15到17中执行以下操作,也适用于ubuntu服务器12.04及更高版本:
sudo vi /etc/bash.bashrc
滚动到底部,然后添加:
export LD_LIBRARY_PATH=.
所有用户都添加了环境变量。