libssl.so.10缺失库文件的解决办法

本文介绍了解决RHEL6.5中openssl升级后出现的libssl.so.10和libcrypto.so.10缺失问题的方法。通过创建软链接指向正确的库版本,可以修复因库文件版本不匹配导致的服务启动失败及SSH连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在RHEL6.5中对openssl进行了升级,如果老版本是OpenSSL 1.0.1e-fips,那直接安装最新的openssl-1.0.1g-1.x86_64.rpm就行了,但是如果老版本低于1.0.1e,那直接安装1.0.1g版本就会出缺失libssl.so.10和libcrypto.so.10库文件的问题,在启动某服务或者直接yum安装等命令都会出现下面问题;而且会造成一个最严重的问题就是SSH连接不上了···
问题:

[root@localhost test]# yum install openssl
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
 
  libssl.so.10: cannot open shared object file: No such file or directory
 
Please install a package which provides this module, or
verify that the module is installed correctly.
 
It's possible that the above module doesn't match the
current version of Python, which is:
2.6.6 (r266:84292, Jun 18 2012, 14:18:47) 
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)]
 
If you cannot solve this problem yourself, please go to 
the yum faq at:
 http://yum.baseurl.org/wiki/Faq

原因:丢失库文件对应的软链接导致
 
解决方法:
1、首先查看/usr/lib64/目录下(如是32位系统那路径就是/usr/lib/)libssl.so库文件的版本,我的是libssl.so.1.0.0

[root@localhost /]# ll /usr/lib64/libssl.so*
-rwxr-xr-x. 1 root root 479012 Apr  9 17:31 /usr/lib64/libssl.so.1.0.0

2、再查看/usr/lib64/目录下

[root@localhost /]# ll /usr/lib64/libcrypto.so*
-rwxr-xr-x. 1 root root 2200149 Apr  9 17:31 /usr/lib64/libcrypto.so.1.0.0

3、创建软链接(ln源就是上面查出的对应版本的库文件):

ln -s /usr/lib64/libssl.so.1.0.0  libssl.so.10
ln -s /usr/lib64/libcrypto.so.1.0.0  libcrypto.so.10

wKioL1le9hjgnO4fAAGp5Ku-BsQ579.png-wh_50

OK,至此问题已解决了,但是openssl版本依然是老版本,要想升级到1.0.1g,如是rhel系统,首先执行yum update openssl命令升级openssl版本,然后在安装1.0.1g版本即可,等yum源里有最新的1.0.1g版本,可直接yum update到最新了~~~


也可直接安装相应rpm包

虚机环境下,可挂载本地ISO镜像来安装。


### 安装缺失的 `libcrypto.so.10` 和 `libssl.so.10` 库 对于 Linux 系统中遇到的 `libcrypto.so.10` 和 `libssl.so.10` 缺失问题,可以通过安装兼容包来解决。具体操作如下: #### 使用 yum 安装兼容 OpenSSL 版本 针对基于 Red Hat 的发行版(如 CentOS 或 RHEL),可以利用官方仓库中的兼容包进行修复。 ```bash sudo yum install compat-openssl10 ``` 这条命令会自动下载并安装所需的库文件及其依赖项[^5]。 #### 手动编译安装特定版本的 OpenSSL 当无法通过软件源获取合适版本时,则需手动编译安装旧版本 OpenSSL 来提供这些共享对象支持。 1. 下载目标版本源码压缩包; 2. 解压至本地目录; 3. 配置构建选项以便于后续管理维护; 4. 构建过程执行 make 命令完成编译工作; 5. 将生成的目标文件复制到适当位置,并创建必要的符号链接指向新路径下的动态链接库实例。 例如,假设已经准备好 OpenSSL 1.0.2 源代码: ```bash tar xfz openssl-1.0.2.tar.gz && cd ./openssl-1.0.2/ ./config shared --prefix=/opt/openssl10 --openssldir=/etc/pki/tls make depend && sudo make install_sw ln -svf /opt/openssl10/lib/*so*.* /usr/local/lib64/. ``` 上述脚本片段展示了如何配置、编译以及部署自定义前缀下的 OpenSSL 实例,并建立相应软链使得应用程序能够定位所需 API 接口实现[^1]。 #### 更新环境变量加速加载速度 为了让系统优先考虑新的 SSL/TLS 动态链接库而非默认自带的那个较新版,可以在 shell 初始化脚本里追加 LD_LIBRARY_PATH 设置语句,像这样: ```bash echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64' >> ~/.bashrc source ~/.bashrc ``` 这一步骤有助于确保所有进程都能顺利找到期望版本的加密函数接口而不会报错退出[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值