起因
机器因为安全需要,对OpenSSL进行了升级,通过openssl version可以查看版本为1.1,执行curl提示libcrypto.so.10库不匹配。
分析
OpenSSL是Linux的基础库,升级会带来不少问题,比如:weg, curl提示找不到libcrypt.so.10和libssl.so.10库
通过资料分析:
这个问题就是因为升级OpenSSL导致的,新版本的SSL把1.1版本的库替换了老的1.0库,导致老的程序不兼容。因此需要让老程序也可以继续工作,不至于全部升级一遍。
解决办法:
从本机或者其他机器上找到libcrypt.so.1.0和libssl.so.1.0文件,复制到问题机器的/lib64目录,在创建1.0版本的符号链接。
# 在具有正常1.0版本的同版本机器:
scp libcrypto.so.1.0.2k <目标机器>/lib64/
scp libssl.so.1.0.2k <目标机器>/lib64/
# 在问题机器上恢复链接
cd /lib64/
ls -l libcrypto.*
ln -sf libssl.so.1.0.2k libssl.so.10
ln -sf libcrypto.so.1.0.2k libcrypto.so.10
通过ldd /usr/bin/curl 可以看到程序链接的位置,在通过符号链接来解决。