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

92a1b4cb-379b-4251-b11e-66593000f57c.png

6.2、添加openssl

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

ea2d6d7a-0ead-4b66-a941-d2ccd1681ccc.png

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

3d547591-81d8-4847-be98-291c0f3f7261.png

八、升级只需要三个包即可

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

557639ea-5bf7-45c9-b9ec-c983b11ed22e.png

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升级包

dc1fcae6-cfb9-4da4-99dd-abd767717db7.png

[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

e204d576-45de-4b4e-92ae-60c9d3192f7b.png

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

十、验证远程登录

34483e4f-9408-4f99-8fb2-5e262c2e40f6.png

十一、麒麟系统强制安装

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

34483e4f-9408-4f99-8fb2-5e262c2e40f6.png

posted on 2026-08-10 15:39  爱河  阅读(2)  评论(0)    收藏  举报

导航