通过下载openssl源码,直接编译升级openssl,如下操作:
#!/bin/bash
echo -e "\033[33m--->开始安装openssl-1.1.1v<---\033[0m"
[ -d openssl-1.1.1v/ ] && rm -rf openssl-1.1.1v
if [ ! -f openssl-1.1.1v.tar.gz ]; then
wget https://www.openssl.org/source/openssl-1.1.1v.tar.gz
if [ $? -eq 0 ]; then
echo -e "\033[33m--->openssl-1.1.1v.tar.gz下载完毕<---\033[0m"
else
echo -e "\033[33m--->openssl-1.1.1v.tar.gz下载失败<---\033[0m"
exit 1
fi
fi
if [ -f openssl-1.1.1v.tar.gz ]; then
tar zxf openssl-1.1.1v.tar.gz && cd openssl-1.1.1v && ./config --prefix=/usr/local/openssl
echo -e "\033[33m--->openssl configure完毕<---\033[0m"
(make -j$cpu && make install) || (echo -e "\033[33m--->编译安装失败<---\033[0m" && exit 1)
if [[ $(cat /etc/ld.so.conf | grep "openssl" | grep -Ev "^#" | wc -l ) == "1" ]]; then
echo "\033[33m--->ld.so.conf中已配置openssl<---\033[0m"
else
sed -i "s/\/usr\/local\/openssl\/lib//g" /etc/ld.so.conf
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
fi
[[ -f /bin/openssl && -f /bin/openssl.old ]] && rm -rf /bin/openssl.old
[[ -f /usr/bin/openssl && -f /usr/bin/openssl.old ]] && rm -rf /usr/bin/openssl.old
[[ ! -L /bin/openssl && -f /usr/local/openssl/bin/openssl ]] && mv /bin/openssl /bin/openssl.old && ln -s /usr/local/openssl/bin/openssl /bin/openssl
[[ ! -L /usr/bin/openssl && -f /usr/local/openssl/bin/openssl ]] && mv /usr/bin/openssl /usr/bin/openssl.old && ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
[[ -d /usr/include/openssl/ && -d /usr/include/openssl.old/ ]] && rm -rf /usr/include/openssl.old
[[ ! -L /usr/include/openssl && -d /usr/local/openssl/include/openssl/ ]] && mv /usr/include/openssl /usr/include/openssl.old && ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo -e "\033[33m--->openssl旧文件移除&软链结创建完毕<---\033[0m"
echo -e "\033[33m--->openssl版本信息<---\033[0m"
openssl version -a
echo -e "\033[33m--->openssl-1.1.1v安装完毕<---\033[0m"
cd ..
else
echo -e "\033[33m--->openssl-1.1.1v.tar.gz文件不存在,安装失败<---\033[0m"
exit 1
fi
openssl官网
https://www.openssl.org
下载链接
https://github.com/openssl/openssl/tags
image.png
OpenSSL rpm builder for CentOS 7
https://github.com/philyuchkoff/openssl-RPM-Builder
下载openssl-RPM-Builder-master.zip
解压后上传到服务器上:
ll openssl-RPM-Builder
总用量 20
-rwxr-xr-x 1 root root 2361 8月 26 11:05 install-openssl_1.1.1.sh
-rwxr-xr-x 1 root root 2207 8月 26 11:53 install-openssl_3.sh
-rw-r--r-- 1 root root 1465 8月 26 11:05 openssl3.spec
-rw-r--r-- 1 root root 1473 8月 26 11:05 openssl.spec
-rw-r--r-- 1 root root 1611 8月 26 11:05 README.md
# 给shell脚本执行权限
chmod +x *.sh
可以直接执行install-openssl_3.sh脚本;
然后,可能遇到的问题
https://www.openssl.org/source/openssl-1.1.1w.tar.gz
https://www.openssl.org/source/openssl-3.3.1.tar.gz
无法正常下载完成,可以手动下载压缩包,然后上传到服务器对应目录下;
并且打开install-openssl_1.1.1.sh
注释掉
curl -O --silent https://www.openssl.org/source/openssl-1.1.1w.tar.gz
mv openssl-1.1.1w.tar.gz /root/rpmbuild/SOURCES
或者打开install-openssl_3.sh注释掉
curl -O --silent https://www.openssl.org/source/openssl-3.3.1.tar.gz
mv openssl-3.3.1.tar.gz /root/rpmbuild/SOURCES
保存后继续执行;
还可能会遇到
/sbin/ldconfig: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf: No such file or directory
生成不了rpm包
参考文章:
https://blog.csdn.net/qq_41922018/article/details/103905243
然后确定/usr/lib/rpm/macros文件存在
ll /usr/lib/rpm/macros
-rw-r--r-- 1 root root 44163 8月 26 17:03 /usr/lib/rpm/macros
编辑/usr/lib/rpm/macros文件,并在末尾加入
%debug_package %{nil}
保存后退出,继续执行脚本。
Obsoletes: openssl <= 3.3.1
处理文件:openssl-devel-3.3.1-1.an8.x86_64
Provides: openssl-devel = 3.3.1-1.an8 openssl-devel(x86-64) = 3.3.1-1.an8
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
检查未打包文件:/usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/openssl-3.3.1-1.an8.x86_64
已写至:/root/rpmbuild/SRPMS/openssl-3.3.1-1.an8.src.rpm
已写至:/root/rpmbuild/RPMS/x86_64/openssl-3.3.1-1.an8.x86_64.rpm
已写至:/root/rpmbuild/RPMS/x86_64/openssl-devel-3.3.1-1.an8.x86_64.rpm
正在执行(%clean):/bin/sh -e /var/tmp/rpm-tmp.uNQtCC
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd openssl-3.3.1
+ '[' /root/rpmbuild/BUILDROOT/openssl-3.3.1-1.an8.x86_64 '!=' / ']'
+ /usr/bin/rm -rf /root/rpmbuild/BUILDROOT/openssl-3.3.1-1.an8.x86_64
+ exit 0
[root@anolis8 openssl-RPM-Builder]# ll /root/rpmbuild/SRPMS/
总用量 17624
-rw-r--r-- 1 root root 18046037 8月 26 17:19 openssl-3.3.1-1.an8.src.rpm
openssl属于操作系统基础组件,不管使用哪种升级方式,都要在测试机上做全面充分的测试!!!
参考文档
https://www.jianshu.com/p/2512aa7f1c9f
rpmbuild打包遇到问题汇总
https://blog.csdn.net/u014007037/article/details/78727526
网友评论