无可用版本信息

问题描述 投票:14回答:3

我正在使用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,以尝试测试该解决方案。

任何帮助将不胜感激,不幸的是,谷歌并没有有用。

ubuntu openldap libssl libcrypto
3个回答
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

并且应该这样做。(非常简单。无需修补。)

我已将此解决方案应用于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


4
投票

在从源代码(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使我走了正确的路。


-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
© www.soinside.com 2019 - 2024. All rights reserved.