我正在使用Ubuntu 12.04 - 服务器并且始终如一地获得:
/usr/lib/libcrypto.so.1.0.0:没有可用的版本信息(/usr/lib/libpython2.7.so.1.0要求)
和
/usr/lib/libssl.so.1.0.0:没有可用的版本信息(/usr/lib/libpython2.7.so.1.0要求)
错误消息没有任何模式的原因。它可以像运行vi一样简单。文件在那里,它们不是链接。
在学习了ldap服务器的基础知识的同时,使用其网站上的说明编译和安装OpenLDAP后,这种情况开始发生了一些。我当然删除了openLDAP以尝试删除问题。我还重新安装了OpenSSL和libssl1.0.0来尝试测试该解决方案。
任何帮助将不胜感激,不幸的是谷歌并没有用。
答案 0 :(得分:12)
我想我应该做到这一点......
问题:libssl.so.1.0.0和libcrypto.so.1.0.0没有可用的版本信息警告/错误。
我解决了它!好极了!!! (烟花爆竹应该是东西。)
经过大量的研究,时间和精力,(花了几周),这就是我最终做的......
在最终解压缩openssl 1.0.1h版本的源代码的目录中(也适用于其他版本。)我创建了一个名为openssl.ld的文件
在这个文件中放这个......
<强>答案强>
OPENSSL_1.0.0 {
global:
*;
};
保存。 现在输入...
干净(只是为了确保我们开始新鲜。)
现在真正令人难以置信的部分......
./config --prefix=/usr/local --openssldir=/usr/local/openssl shared -Wl,--version-script=openssl.ld -Wl,-Bsymbolic-functions
则...
make
make test
make install
ldconfig
那应该这样做。 (这很简单。不需要修补。)
我已将此解决方案应用于Debian Wheezy 32位和64位版本。并且做了一个观察。 64位版本自动默认为在/ usr / local / lib目录中创建的新libssl.so.1.0.0和libcrypto.so.1.0.0文件。 32位版本没有。这就是为什么我一开始认为32位版本的Debian Wheezy没有遇到这个问题,但是一旦你得到32位版本就可以在/ usr / local / lib目录中使用新的openssl库。
使用ldd命令测试二进制文件所使用的库对于解决这个问题也是非常宝贵的。
度过愉快的一天。
先生。 E. Dude
答案 1 :(得分:4)
在从源代码(openssl-1.0.1f)编译和安装最新版本的openssl之后,我也收到了令人讨厌的警告消息。经过一些研究和一些试验和错误,我能够解决我的特定情况的问题。它基本上归结为警告信息所说的内容。从源构建的库中没有可用的版本信息。这是Ubuntu团队在其发行版中添加的内容。因此,解决方案是在使用openssl的Ubuntu软件包发行版中包含的版本脚本修补openssl源代码后重新编译它。
我谷歌&#34;修补openssl以包含ubuntu的版本信息&#34;并碰巧在https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.1f-1ubuntu1.debian.tar.gz找到了我需要的源包。
所以,这是我遵循的过程:
rm -r -f -v openssl-1.0.1f (just to make sure you start fresh)
wget http://www.openssl.org/source/openssl-1.0.1f.tar.gz
tar -xvf openssl-1.0.1f.tar.gz
wget https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.1f-1ubuntu1.debian.tar.gz
tar -xvf openssl_1.0.1f-1ubuntu1.debian.tar.gz
mv debian openssl_1.0.1f-1ubuntu1 (just because that's what I did)
cd openssl-1.0.1f/
patch -p1 < ../openssl_1.0.1f-1ubuntu1/patches/version-script.patch
./config
make
make test
sudo make install
现在,错误消息应该消失了。
值得一提的是,最初我使用http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.1-4ubuntu5.11.debian.tar.gz中原始源包中包含的版本脚本修补了我的openssl-1.0.1f源代码。但是,我的make
失败并出现错误。我想我需要获得相同版本的1.0.1f才有意义。
感谢@mattcasw的帖子http://ubuntuforums.org/showthread.php?t=1905963,这使我走上了正确的道路。
答案 2 :(得分:-1)
看看我在此question中发布的答案。我认为与您的情况相同。无论如何,我运行了以下命令:
对于libssl.so.1.0.0:
sudo rm /usr/local/ssl/lib/libssl.so.1.0.0
sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 usr/local/ssl/lib/libssl.so.1.0.0
对于libcrypto.so.1.0.0:
sudo rm /usr/local/ssl/lib/libcrypto.so.1.0.0
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/local/ssl/lib/libcrypto.so.1.0.0