curl相关漏洞修复[CVE-2022-4355] - 测试成功
  AeUHztwqqxTz 2023年11月02日 65 0
0、备份服务器

如为云服务器,建议先备份服务器快照或镜像,避免升级的版本和之前业务不兼容导致服务出现异常

1、编译安装较高版本curl

官网下载地址:https://curl.se/download/

如下命令:

wget https://curl.se/download/curl-8.0.1.tar.gz --no-check-certificate #下载官方源码包
#解压缩、编译安装
tar -xzvf curl-8.0.1.tar.gz 
cd curl-8.0.1
./configure --prefix=/usr/local/curl --with-ssl=/usr/local/ssl --with-zlib=/usr/local/zlib
make && make install  #默认安装位置在/usr/local/bin/curl
#查看安装后的版本
/usr/local/curl/bin/curl -V
2、卸载低版本的curl

如下命令:

#ubuntu操作系统
apt remove curl -y #卸载旧版本curl
ln -s  /usr/local/curl/bin/curl /usr/bin/curl #添加编译的高版本curl到环境变量
#centos操作系统
yum remove curl -y #卸载旧版本curl
rm -rf /usr/bin/curl
ln -s  /usr/local/curl/bin/curl /usr/bin/curl #添加编译的高版本curl到环境变量
3、避“坑”参考
3.1 编译报错
  • 编译时遇到报错 --with-openssl was given but OpenSSL could not be detected

解决方法:

#安装openssl和openssl的库/头文件 包
#ubuntu操作系统,分开执行下面的命令
sudo apt install openssl
sudo apt install libssl-dev
#centos操作系统
yum -y install openssl openssl-devel
  • 编译时,报错/usr/bin/ld: cannot find crti.o: No such file or directory 或者 类似C compiler cannot create executables

原因:

早期旧版本的Ubuntu等操作系统,混合编译缺少支持,需要安装gcc-multilib

解决方法:

sudo apt install gcc-multilib
3.2 新版本curl执行报错
  • 安装完成后,执行curl命令/usr/local/bin/curl -V报错 /usr/local/bin/curl: symbol lookup error: /usr/local/bin/curl: undefined symbol: curl_multi_poll

原因:

未找到动态库引用位置,需要添加动态库路径到系统动态库配置文件

解决方法:

#添加动态库路径到系统动态库配置文件
echo "/usr/lib" >> /etc/ld.so.conf
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig -v && ldconfig /etc/ld.so.conf
#再次验证版本
/usr/local/bin/curl -V
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  Yoru5qB4TSKM   2023年12月10日   36   0   0 服务器重启IP
  48fXx4UfWSFg   2023年12月06日   54   0   0 bcIPbundle
AeUHztwqqxTz