暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

通过Docker编译Centos6/7 rpm离线包

watson 2024-08-09
308

Centos环境离线编译升级太复杂,能不能使用类似欧拉的rpm包升级的方式修复,如果需要编译打包rpm包比直接编译升级复杂很多,虽然我可以自己打包一份放到网盘分享给大家,但是本着一劳永逸的想法, 在github中找到了一个项目,可以通过简单的docker脚本就可以实现各个版本的openssh rpm包构建。

github仓库地址如下:

https://github.com/boypt/openssh-rpms.git


具体的项目介绍,请参考github的 readme,我这边就不多说了直接开干

环境介绍

操作系统版本
docker版本
依赖镜像版本
Ubuntu22.04
docker-ce27.1.1

chowrex/openssh-rpm:centos7

chowrex/openssh-rpm:centos6

ps:为了展示docker跨操作系统编译方便快捷,特意做了一台ubuntu的虚拟机测试编译

编译centos6/7 rpm包

#下载github项目代码git clone https://github.com/boypt/openssh-rpms.git#配置docker编译脚本cd  openssh-rpmscat docker-build.sh
#!/bin/bashOUTPUT="/tmp/openssh-rpms"# Specify build os and versionsdeclare -A MAPPINGMAPPING["centos7"]="el7"MAPPING["centos6"]="el6"# CentOS 5 is NOT valid.for VERSION in "${!MAPPING[@]}";do DIST=${MAPPING[$VERSION]} echo "Create for OS: ${VERSION}" mkdir -p $OUTPUT/$VERSION # Run the builder container docker run -it --rm \ -v $OUTPUT/$VERSION:/data/$DIST/RPMS \ chowrex/openssh-rpms:$VERSIONdone
#编译rpm包sh build.sh
#等待拉取镜像,编译完成,编译完毕后 会在$OUTPUT 文件夹生产相关的rpm包目录root@iv-yd93w47shsxjd1tts1k7:/home/code/openssh-rpms# tree /tmp/openssh-rpms//tmp/openssh-rpms/├── centos6│   └── x86_64│   ├── openssh-9.8p1-1.el6.x86_64.rpm│   ├── openssh-clients-9.8p1-1.el6.x86_64.rpm│   └── openssh-server-9.8p1-1.el6.x86_64.rpm└── centos7 └── x86_64 ├── openssh-9.8p1-1.el7.x86_64.rpm ├── openssh-clients-9.8p1-1.el7.x86_64.rpm └── openssh-server-9.8p1-1.el7.x86_64.rpm       #如果docker镜像拉取失败(国内限制),我这边有之前下载的上传到阿里云仓库的镜像#只需要修改脚本里的镜像地址为阿里云仓库的镜像即可registry.us-east-1.aliyuncs.com/y110/openssh-rpms:centos7registry.us-east-1.aliyuncs.com/y110/openssh-rpms:centos6
#使用阿里云的镜像脚本修改后如下cat docker-build-aliy.sh
#!/bin/bashOUTPUT="/tmp/openssh-rpms"# Specify build os and versionsdeclare -A MAPPINGMAPPING["centos7"]="el7"MAPPING["centos6"]="el6"# CentOS 5 is NOT valid.for VERSION in "${!MAPPING[@]}";do DIST=${MAPPING[$VERSION]} echo "Create for OS: ${VERSION}" mkdir -p $OUTPUT/$VERSION # Run the builder container docker run -it --rm \ -v $OUTPUT/$VERSION:/data/$DIST/RPMS \ registry.us-east-1.aliyuncs.com/y110/openssh-rpms:$VERSIONdone

升级测试

#拷贝rpm包到cenots7服务器,查看服务器版本、openssh版本[root@monitor harbor]# cat /etc/os-release NAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos:centos:7"HOME_URL="https://www.centos.org/"BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"CENTOS_MANTISBT_PROJECT_VERSION="7"REDHAT_SUPPORT_PRODUCT="centos"REDHAT_SUPPORT_PRODUCT_VERSION="7"
[root@monitor harbor]# rpm -qa |grep opensshopenssh-server-7.4p1-16.el7.x86_64openssh-7.4p1-16.el7.x86_64openssh-clients-7.4p1-16.el7.x86_64
#执行rpm包升级cp -r /etc/ssh /tmp/sshrpm -Uvh openssh*.rpm
[root@monitor harbor]# rpm -Uvh openssh-*.rpm准备中... ################################# [100%]正在升级/安装... 1:openssh-9.8p1-1.el6 ################################# [ 17%] 2:openssh-clients-9.8p1-1.el6 ################################# [ 33%] 3:openssh-server-9.8p1-1.el6 警告:/etc/ssh/sshd_config 已建立为 /etc/ssh/sshd_config.rpmnew ################################# [ 50%]正在清理/删除... 4:openssh-server-7.4p1-16.el7 ################################# [ 67%] 5:openssh-clients-7.4p1-16.el7 ################################# [ 83%] 6:openssh-7.4p1-16.el7 ################################# [100%]
#重启sshd服务systemctl stop sshdsystemctl start sshd
#新版本的opensshd服务的配置文件时/etc/ssh/sshd_config.rpmnew 可以根据需求使用新版笨的配置#本次测试没有使用新版笨的配置,老版本配置照样可以使用#最后验证升级sshd -Vssh -V
[root@monitor harbor]# sshd -VOpenSSH_9.8p1, OpenSSL 3.0.14 4 Jun 2024[root@jq-monitor harbor]# ssh -VOpenSSH_9.8p1, OpenSSL 3.0.14 4 Jun 2024
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论