我正在使用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一样简单。文件在那里,它们不是链接。
在编译并安装OpenLDAP之后,根据学习ldap服务器的基础知识,使用他们网站上的说明,开始出现这种情况。我已经删除了openLDAP,以尝试解决此问题。我还重新安装了OpenSSL和libssl1.0.0,以尝试测试该解决方案。
任何帮助将不胜感激,不幸的是,谷歌并没有有用。
我想我应该说清楚了...
问题: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
并且应该这样做。(非常简单。无需修补。)
我已将此解决方案应用于32位和64位版本的Debian Wheezy。并作了观察。 64位版本自动默认为在/ usr / local / lib目录中创建的新libssl.so.1.0.0和libcrypto.so.1.0.0文件。 32位版本则没有。这就是为什么我起初以为Debian Wheezy的32位版本没有受到此问题的困扰,但是一旦获得32位版本就可以在/ usr / local / lib目录中使用新的openssl库,它就会这样做。
使用ldd命令测试二进制文件正在使用哪些库,在弄清楚这一点方面也非常宝贵。
祝你有美好的一天。
先生E. Dude
在从源代码(openssl-1.0.1f)编译并安装了最新版本的openssl之后,我也收到了令人讨厌的警告消息。经过一些研究和反复试验,我能够针对我的特定情况解决此问题。从根本上讲,它完全可以满足警告消息的要求。从源构建的库中没有可用的版本信息。这就是Ubuntu团队在其发行版中添加的内容。因此,解决方案是在使用openssl的Ubuntu软件包发行版中包含的版本脚本对其进行修补后,重新编译openssl源。
我用Google搜索了“ openssl补丁以包含ubuntu的版本信息”,并偶然在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使我走了正确的路。
看看我在此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