Linux系统源码打包RPM安装包
Linux系统漏洞修复将源码打包成rpm安装包
一、前言
在Linux系统中,将软件从源码包(通常是.tar.gz或.zip格式)编译并打包成RPM安装包,通常涉及到以下几个步骤。这个过程通常用于在企业环境中分发和管理软件,因为RPM是Red Hat系列发行版(如RHEL、CentOS、Fedora等)的默认包管理系统。
二、环境准备
操作系统:centos 7 x86_64 minal
工具软件:rpm-build
源码文件: openssh-9.9p2.tar.gz x11-ssh-askpass-1.2.4.1.tar.gz
三、安装依赖包
yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel xmkmf libXt-devel gtk2-devel make -y
四、拷贝源码包到响应目录
wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz
cp openssh-9.9p2.tar.gz x11-ssh-askpass-1.2.4.1.tar.gz /root/rpmbuild/SOURCES
五、解压源码包 拷贝openssh.spec进行修改
tar -zxvf openssh-9.9p2.tar.gz
tar -zxvf x11-ssh-askpass-1.2.4.1.tar.gz
cp /root/rpmbuild/SOURCES/openssh-9.9p2/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/
六、制作rpm包
6.1、修改参数
cd /root/rpmbuild/SPECS/
vim openssh.spec,修改以下参数值为0

6.2、添加openssl
#添加这两句 --with-ssl-dir 参数值路径按照系统实际路径为准
--with-openssl \
--with-ssl-dir=/usr/local/openssl-1.1.1m \

63、制作rpm包
#删除历史编辑源码
rm -rf /root/rpmbuild/BUILD/*
#赋予执行权限
chmod 777 openssh.spec
#忽略检查
sed -i '/openssl-devel < 1.1/s/^/#/' openssh.spec
#制作rpm包
rpmbuild -ba openssh.spec
七、制作完成,拷贝rpm包
cd /root/rpmbuild/RPMS/x86_64/
#输入ll
-rw-r--r-- 1 root root 659620 Mar 12 21:19 openssh-10.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 44716 Mar 12 21:19 openssh-askpass-10.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 25956 Mar 12 21:19 openssh-askpass-gnome-10.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 688784 Mar 12 21:19 openssh-clients-10.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 4893204 Mar 12 21:19 openssh-debuginfo-10.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 693904 Mar 12 21:19 openssh-server-10.2p1-1.el7.x86_64.rpm

八、升级只需要三个包即可
openssh-10.2p1-1.el7.x86_64.rpm
openssh-clients-10.2p1-1.el7.x86_64.rpm
openssh-server-10.2p1-1.el7.x86_64.rpm
九、Linux系统OpenSSH升级
卸载原openssh包
先查看
9.1、ssh安装情况
rpm -qa |grep openssh

9.2、ssh关键文件
cp /etc/pam.d/sshd /etc/pam.d/sshd_back
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_back
9.3、卸载ssh安装包
rpm -e --nodeps openssh-server-10.3p1-1.el7.x86_64 openssh-clients-10.3p1-1.el7.x86_64 openssh-10.3p1-1.el7.x86_64
9.4、安装ssh升级包

[root@VM-12-9-centos]# yum localinstall ./*.rpm
Loaded plugins: fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Examining ./openssh-10.3p1-1.el7.x86_64.rpm: openssh-10.3p1-1.el7.x86_64
Marking ./openssh-10.3p1-1.el7.x86_64.rpm to be installed
Examining ./openssh-clients-10.3p1-1.el7.x86_64.rpm: openssh-clients-10.3p1-1.el7.x86_64
Marking ./openssh-clients-10.3p1-1.el7.x86_64.rpm to be installed
Examining ./openssh-server-10.3p1-1.el7.x86_64.rpm: openssh-server-10.3p1-1.el7.x86_64
Marking ./openssh-server-10.3p1-1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package openssh.x86_64 0:10.3p1-1.el7 will be installed
---> Package openssh-clients.x86_64 0:10.3p1-1.el7 will be installed
---> Package openssh-server.x86_64 0:10.3p1-1.el7 will be installed
--> Finished Dependency Resolution
base/7/x86_64 | 3.6 kB 00:00:00
elevate/7/x86_64 | 3.0 kB 00:00:00
elevate/7/x86_64/primary_db | 103 kB 00:00:17
epel/7/x86_64 | 4.3 kB 00:00:00
extras/7/x86_64 | 2.9 kB 00:00:00
updates/7/x86_64 | 2.9 kB 00:00:00
Dependencies Resolved
======================================================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================================================
Installing:
openssh x86_64 10.3p1-1.el7 /openssh-10.3p1-1.el7.x86_64 2.7 M
openssh-clients x86_64 10.3p1-1.el7 /openssh-clients-10.3p1-1.el7.x86_64 2.2 M
openssh-server x86_64 10.3p1-1.el7 /openssh-server-10.3p1-1.el7.x86_64 2.4 M
Transaction Summary
======================================================================================================================================================================================
Install 3 Packages
Total size: 7.3 M
Installed size: 7.3 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
mpi-selector-1.0.3-1.54310.x86_64 is a duplicate with mpi-selector-1.0.3-1.51258.x86_64
Installing : openssh-10.3p1-1.el7.x86_64 1/3
Installing : openssh-server-10.3p1-1.el7.x86_64 2/3
Installing : openssh-clients-10.3p1-1.el7.x86_64 3/3
Verifying : openssh-server-10.3p1-1.el7.x86_64 1/3
Verifying : openssh-10.3p1-1.el7.x86_64 2/3
Verifying : openssh-clients-10.3p1-1.el7.x86_64 3/3
Installed:
openssh.x86_64 0:10.3p1-1.el7 openssh-clients.x86_64 0:10.3p1-1.el7 openssh-server.x86_64 0:10.3p1-1.el7
Complete!
9.5、查看安装后openssh版本号
ssh -V

9.6、ssh关键文件赋权
chmod 400 /etc/ssh/ssh_host_*
chmod 600 /etc/ssh/ssh_host_ed25519_key
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
文件也是755权限,也需要修改为600权限
9.7、sshd_config写入配置以及赋权
#授权
echo "Port 32125" >> /etc/ssh/sshd_config #设置端口
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config #允许root远程登录
echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config #
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config #允许密码认证
echo "UsePAM yes" >> /etc/ssh/sshd_config #openssh9.9need
9.8、sshd文件升级后再覆盖回去
#配置认证 备份原来的,升级后再覆盖回去也行
cat /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
auth include postlogin
account required pam_nologin.so
account include password-auth
password include password-auth
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
-session optional pam_reauthorize.so prepare
9.9、ssh服务重启、查看ssh服务状态
#重启服务
systemctl restart sshd
#查看状态
systemctl status sshd
十、验证远程登录

十一、麒麟系统强制安装
rpm -ivh openssh-10.2p1-1.el7.x86_64.rpm --nodeps --force
rpm -ivh openssh-clients-10.2p1-1.el7.x86_64.rpm --nodeps --force
rpm -ivh openssh-server-10.2p1-1.el7.x86_64.rpm --nodeps --force

浙公网安备 33010602011771号