欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

libssl.so.10 no version information available required by相关问题

程序员文章站 2022-06-09 17:28:15
...

0x01、问题描述

原来线上nginx是yum安装的,本来想支持第三方模块echo的,抱着尝试的心态,

  • 1、下载了同样版本的nginx,然后使用/usr/sbin/nginx -V查看了系统nginx的编译参数,然后在源码目录中使用同样的编译flag来编译nginx
  • 2、不巧,configure过程,环境检查就出问题了,缺少libpcre-devel库,安装后没有问题了,再尝试检测,发现还要安装openssl相关的
  • 3、就是这里出问题了,一查看有openssl的包安装,索引把开发包一起安装了。openssl-devel,安装就编译正常了,也make,make install了(事先已经做好备份了),以为没有问题了,然而………………
  • 4、nginx -v的时候出现了下面的错误, 使用网上提供的方法解决了。
$ nginx -v
nginx: relocation error: /usr/lib64/libssl.so.10: symbol private_ossl_minimum_dh_bits, version libcrypto.so.10 not defined in file libcrypto.so.10 with link time reference
  • 5、然后又出现了下面的问题了,基本上是安装了不同版本的openssl,
# 使用nginx查看版本
$ nginx -v
nginx: /usr/lib64/libssl.so.10: no version information available (required by nginx)

# 查看openssl的版本
$ openssl version
openssl: /usr/lib64/libssl.so.10: no version information available (required by openssl)

就先到这里,下面是如何解决的方法,更多的是运气成分吧

0x02、解决方法

  • 01、开发环境和线上环境是一样的系统和版本
  • 02、在线上环境执行了yum update把所有软件包都升级了,nginx v1.6也升级到了v1.10,这就…………,暂时…………
  • 03、开发机上yum update openssl,和线上一样的版本
  • 04、查看开发机对应的库文件是如何链接的
# 开发环境
[[email protected] ~]# ll /usr/lib64/libcrypto.so.10 /usr/lib64/libssl.so.10
lrwxrwxrwx 1 root root 19 Apr 25 12:37 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.1e
lrwxrwxrwx 1 root root 16 Apr 25 12:37 /usr/lib64/libssl.so.10 -> libssl.so.1.0.1e

# 线上环境, 是这样的,**猜测可能是解决问题4时手动替换库文件,导致yum链接异常的**
# cd /usr/lib64

# ll libssl.so.10
lrwxrwxrwx 1 root root 15 Apr 25 12:31 libssl.so.10 -> libssl.so.1.0.0
# ll libcrypto.so.10 
lrwxrwxrwx 1 root root 23 Apr 25 11:43 libcrypto.so.10 -> libcrypto.so.1.0.1e_bak
  • 05、拷贝至线上主机,检验md5码,发现是一样的,所以也没有替换的必要
  • 06、那就把libssl.so.10, libcrypto.so.10这两个链接修改一下,和开发环境机器一致,因为开发环境是正常的。
$ cd /usr/lib64
$ ln -sfn libcrypto.so.1.0.1e libcrypto.so.10
$ ln -sfn libssl.so.1.0.1e libssl.so.10
$ ll libssl.so.10 libcrypto.so.10 
lrwxrwxrwx 1 root root 19 Apr 25 12:46 libcrypto.so.10 -> libcrypto.so.1.0.1e
lrwxrwxrwx 1 root root 16 Apr 25 12:46 libssl.so.10 -> libssl.so.1.0.1e

### 此处是大写,TMD,终于正常了,吃饭去了
$ openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
$ nginx -v
nginx version: nginx/1.10.2

0x03、事后总结

一定,一定,一定不在要生产环境执行任何不可预期的操作!!!