解决生产环境遇到的curl和yum命令报错问题

1.背景

生产环境进行了漏洞扫描检测出sshd服务的版本漏洞(CVE-2024-6387),给出的解决方案是升级最新版本的sshd服务即最新版本9.8,升级sshd服务需要依赖openssl,在升级的同时也将openssl版本进行了升级,升级的openssl版本是openssl-1.1.1l。

使用的操作系统是银河麒麟V10SP2 arm64。

2.过程

升级完成后ssh服务测试正常使用没有问题

但是curl和yum命令执行时分别出现了如下报错

curl: relocation error: /lib64/libcurl.so.4: symbol SSLv3_client_method version OPENSSL_1_1_0 not defined in file libssl.so.1.1 with link time reference

curl命令报错如下

解决生产环境遇到的curl和yum命令报错问题

yum命令报错如下

解决生产环境遇到的curl和yum命令报错问题

根据报错分析是升级openssl的版本和现有的版本的libcurl.so.4的文件不兼容导致,因此也查询了资料进行了修复,但是都没有效果,最终决定重新编译安装curl命令试试。

编译安装curl命令如下

  • step1:下载curl源码包
wget https://curl.se/download/curl-8.8.0.tar.gz
  • step2:解压
tar xf curl-8.8.0.tar.gz
  • step3:编译(使用刚才升级的openssl作为依赖)
cd curl-8.8.0/
./configure --prefix=/usr/src --with-ssl=/usr/local/ssl
  • step4:安装
make && make install

编译安装完成后会在/usr/src/目录下生成4个目录/usr/src/{bin,include,lib,share},curl命令的可执行文件在bin目录下,我们可以进行测试一下:

解决生产环境遇到的curl和yum命令报错问题

测试curl命令可以正常使用,但是yum命令还不行

此时我们可以查看新编译安装的curl命令的lib目录/usr/src/lib目录下有libcurl.so.4软连接的文件

解决生产环境遇到的curl和yum命令报错问题

我们将原机器的libcurl.so.4文件进行备份,用新编译的文件进行一个替换操作

[root@ths01 ~]# ls -l /lib64/libcurl.so.4
lrwxrwxrwx 1 root root 16 Jun  8  2020 /lib64/libcurl.so.4 -> libcurl.so.4.6.0
[root@ths01 ~]# mv /lib64/libcurl.so.4.6.0 /lib64/libcurl.so.4.6.0_bak
[root@ths01 ~]# chmod +x libcurl.so.4.8.0
[root@ths01 ~]# mv libcurl.so.4.8.0 /lib64/libcurl.so.4.6.0

此时们再次使用curl和yum命令就会恢复正常

解决生产环境遇到的curl和yum命令报错问题

3.结论

在生产环境升级ssh服务过程中尽量不升级openssl版本,其它跟openssl相关的操作也是一样,避免对其它依赖旧版openssl的命令或者组件带来影响,虽然影响范围不是很大,也算是一个小的问题,因此需要谨慎操作。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持恩蓝小号。

原创文章,作者:GYKPK,如若转载,请注明出处:http://www.wangzhanshi.com/n/1026.html

(0)
GYKPK的头像GYKPK
上一篇 2024年12月17日 17:59:49
下一篇 2024年12月17日 17:59:53

相关推荐

  • linux系统下部署项目访问报404错误的解决方法

    碰到了一个比较奇怪的问题,我在linux系统上安装了一个tomcat服务器,我将一个项目部署到了这个服务器上,然后我去访问这个tomcat,访问成功: 紧接着,我访问我部署项目的i…

    2025年1月1日
  • Ubuntu配置静态IP的两种方法

    方法一 以Ubuntu20.04示例 第一步:查看当前主机网络信息 ifconfig 本机网卡名为:ens32,IP地址为:192.168.15.133,子网掩码为:255.255…

    2024年12月17日
  • 详解linux 摄像头驱动编写

    对于现代嵌入式设备,特别是手机来说,摄像头是很重要的一个设备。很多同学买手机,一看颜值,第二就看摄像头拍照如何。所以,从某个角度来说,摄像头是各个厂家主打的应用功能。那么,linu…

    Linux 2025年1月1日
  • Linux 中_exit和exit的区别

    Linux 中_exit和exit的区别 在Linux的标准库函数中,有一套称作高级I/O的函数,我们熟知的printf 、fopen 、fread 、fwrite都在此列,他们也…

    Linux 2025年1月1日
  • Linux文件管理使用详解

    对于计算机来说,所谓的数据就是0和1的序列。这样的一个序列可以存储在内存中,但内存中的数据会随着关机而消失。为了将数据长久保存,我们把数据存储在光盘或者硬盘中。根据我们的需要,我们…

    2025年1月1日
  • Linux开机启动过程详解

    计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面。然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出…

    Linux 2025年1月1日
  • Linux环境搭建之安装/配置Tomcat的方法

    1、(使用root用户登录)创建用户组,组名称,如:loan; ? groupadd -g 501 loan 2、(使用root用户登录)创建用户,如:finance,属组为:lo…

    2025年1月1日
  • Linux ssh远程连接断开问题处理办法解决

    我们在通过远程连接操作Linux server的时候,有可能过一段时间忘记操作,便会发生ssh断开的问题。 而如果是本地的server,比较好办,直连设备kill掉ssh,踢掉无效…

    2025年1月1日
  • 制作PHP的RPM包详解及实例

    制作PHP的RPM包教程 有时候为了方便源码包的安装,我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包,当有了源码包就可以直接编译得到二进制安装包和其他…

    Linux 2025年1月1日
  • 详解linux下redis安装、启动与停止,redis做成服务

    如果的linux可以链接网络,那么可以直接联网下载。直接输入代码: ? wget http://redis.googlecode.com/files/redis-3.0.2.tar…

    2025年1月1日

发表回复

登录后才能评论