美文网首页
Anolis OS 8.4 上编译安装openssl生成rpm包

Anolis OS 8.4 上编译安装openssl生成rpm包

作者: 前浪浪奔浪流 | 来源:发表于2024-08-26 10:40 被阅读0次

    通过下载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
    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

    相关文章

      网友评论

          本文标题:Anolis OS 8.4 上编译安装openssl生成rpm包

          本文链接:https://www.haomeiwen.com/subject/jrgnkjtx.html