Linux 解决“libssl.so.1.0.0 or libcrypto.so.1.0.0 no version information available”的问题

文章目录[隐藏]

相信很多人在使用 ssh 或者 curl 等等命令的时候都出现过“libssl.so.1.0.0 and libcrypto.so.1.0.0 no version information available”的问题,SunriseYDY 遇到这个问题很久了,一直懒得搭理它,因为ssh出现这个问题之后还能继续使用,直到前几天使用 nodejs 的时候又出现了这个问题严重影响了nodejs 的使用,我才决定要修复一下这个问题。

解决方法一

先来个最简单的解决方法。我出现的错误具体是这样的:

ssh: /usr/local/openssl/lib/libcrypto.so.1.0.0: no version information available (required by ssh)
ssh: /usr/local/openssl/lib/libcrypto.so.1.0.0: no version information available (required by ssh)

我在 /usr目录下搜索了一下这个libcrypto.so.1.0.0 和 libcrypto.so.1.0.0

sunriseydy@sunriseydy:~$ sudo find /usr -name libcrypto.so.1.0.0
[sudo] sunriseydy 的密码: 
/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
/usr/local/openssl/lib/libcrypto.so.1.0.0

在网上看到有人说是因为引用了不受系统承认的版本,那我就试着把 /usr/local/openssl/lib/ 目录下的libcrypto.so.1.0.0 和 libcrypto.so.1.0.0删掉(为了保险起见,我做了移动):

sudo mv /usr/local/openssl/lib/libcrypto.so.1.0.0 /usr/local/openssl/lib/libcrypto.so.1.0.0.bk
sudo mv /usr/local/openssl/lib/libssl.so.1.0.0 /usr/local/openssl/lib/libssl.so.1.0.0.bk

然后,case closed!问题解决 :(滑稽)

解决方法二

还有一种解决方法,是重新编译 openssl,指定全局的库路径。由于这个方法我没有试过(在主用机上搞这些有风险 :(懒得理) ),这里就直接给出原链接:https://stackoverflow.com/questions/18390833/no-version-information-available,需要 FQ 才能打开,在这里搬运一下:

下载 1.0.0. 版本的 openssl 源码,在解压后的根目录里新建一个”openssl.ld”文件,文件内容如下:

OPENSSL_1.0.0 {
    global:
    *;
};

接着执行:

make clean
./config --prefix=/usr/local --openssldir=/usr/local/openssl shared -Wl,--version-script=openssl.ld -Wl,-Bsymbolic-functions
make
make test
make install
ldconfig

大致上就是这样,我的建议还是如果不懂就不要轻易试这个方法,方法一都已经能解决大部分的问题。


版权说明:
作品 sunriseydy 采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
文章内容如未说明均为原创,欢迎转载,但请注明原作者(sunriseydy)和原文链接(https://blog.sunriseydy.top/technology/server-blog/server/no-version-information-available/)
部分来自互联网的文章,如有侵权,请联系我,24小时内删除,谢谢

分享到微博 分享到QQ 微信赞赏 点赞 0

评论一下呗亲

电子邮件地址不会被公开。 必填项已用*标注