加载共享库时出错:libreadline.so.5
我正在尝试运行这个命令 sudo pip install --upgrade virtualenv
,但是每次都会收到以下错误信息:
/opt/bitnami/python/bin/.python2.7.bin: error while loading shared libraries:
libreadline.so.5: cannot open shared object file: No such file or directory
我试过这个链接里的建议 [Bitnami - /opt/bitnami/python/bin/.python2.7.bin: error while loading shared libraries: libreadline.so.5](Bitnami - /opt/bitnami/python/bin/.python2.7.bin: error while loading shared libraries: libreadline.so.5 和没有效果),但并没有帮助。
我为什么会收到这个错误呢?
4 个回答
所需的文件在目录中找不到。通常这是因为某个文件的旧版本被更新成了新版本(比如说,libreadline.so.5
被 libreadline.so.8
替换了)。要解决这个问题,首先你需要检查一下库的目录(/usr/lib
),看看是否存在文件的其他版本。如果有的话,你可以创建一个指向那个文件的链接,并把这个链接命名为缺失的文件名。
下面的例子是创建一个名为缺失文件的链接(libreadline.so.5
),这个链接指向 libreadline.so.8
。但是要小心,因为如果某个 libreadline.so.*
文件丢失了,可能会导致你的终端无法接收输入。
cd /usr/lib
ln -sf libreadline.so.8 -T libreadline.so.5
这个解决方案对我有效。
虽然maplesyrup的回答不错,但我找到了一种在实际操作中效果更好的解决办法。
你可以运行这个命令:sudo echo '. /opt/bitnami/scripts/setenv.sh' >> /opt/bitnami/.bitnamirc
这个命令会把maplesyrup回答中的脚本调用添加到你的设置里,这样每次登录时都会自动运行。唯一的缺点是你在通过ssh登录后需要立即输入密码,但总的来说,这比每次登录都手动运行脚本要方便得多。
用pip安装virtualenv会把它装在bitnami堆栈里。因此,要使用virtualenv,我们需要执行一个叫setenv.sh的脚本。这个脚本给virtualenv提供了必要的权限,但每次使用之前都得运行这个脚本,所以更好的办法是用sudo apt-get在系统的根目录下安装virtualenv。
在根目录安装virtualenv
sudo apt-get install python-virtualenv
我搞明白了这个问题。
你需要通过输入 sudo su 命令进入根目录。
现在在根目录下运行以下命令: . /opt/bitnami/scripts/setenv.sh
我通过SSH登录到我的服务器,显然每次登录都得按照相同的步骤来。