将tar包制作成RPM包---OpenSSH8.3p1

将tar包制作成RPM包,更简单,一本万利

安全扫描,需要把OpenSSH升级到 8.3 版本,和8.0还是有点区别的,下面记录一下。

还是使用rpmbuild将tar包打成rpm包,不喜欢编译升级的,又要开启、关闭telnet服务,麻烦。

各个目录的一般用途如下简介:

目录用途
BUILD构建过程使用的目录、编译rpm包的临时目录
RPMS存放构建好的rpm包、最终生成的可安装rpm包的所在目录
SOURCES存放用来构建的脚本和源代码、所有源代码和补丁文件的存放目录
SPECS存放xxx.spec文件、存放SPEC文件的目录(重要)
SRPMS存放构建好的xxx.src.rpm文件,xxx.src.rpm包含 SOURCES和SPECS下的文件,可以使用这些文件自己构建,软件最终的rpm源码格式存放路径
BUILDROOT编译后生成的软件临时安装目录

开始制作:

#yum安装构建需要的工具
yum install rpm-build rpmdevtools zlib-devel openssl-devel gcc perl-devel pam-devel unzip -y
#创建rpmbuild所需要的目录
mkdir -p /root/rpmbuild/{SOURCES,SPECS}
  #或者可以使用如下命令自动创建,该命令由rpmdevtools提供
  rpmdev-setuptree  #该命令可以创建目录~/rpmbuild和文件~/.rpmmacro
  tree ~/rpmbuild   #查看rpmbuild下面的文件结构

#进入该目录
cd /root/rpmbuild/SOURCES
#下载原材料tar包,以便于制作rpm包
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz
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
#解压tar包直接“自动制作”成spec文件
tar zxvf openssh-8.3p1.tar.gz openssh-8.3p1/contrib/redhat/openssh.spec
#移动spec文件到SPECS目录
mv openssh-8.3p1/contrib/redhat/openssh.spec ../SPECS/
#更改用户组所属权限
chown sshd:sshd /root/rpmbuild/SPECS/openssh.spec
#该文件做备份
cp /root/rpmbuild/SPECS/openssh.spec /root/rpmbuild/SPECS/openssh.spec_def
#修改参数openssh.spec的参数,将0修改成1
sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec
sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec
#进入SPECS目录
cd /root/rpmbuild/SPECS/
#使用rpmbuild工具构建
rpmbuild -ba openssh.spec

-bp 只作准备 (解压与打补丁)
-bc 准备并编译
-bi 编译并安装
-bl 检验文件是否齐全
-ba 编译后做成*.rpm和src.rpm
-bb 编译后做成*.rpm
-bs 只做成*.src.rpm

错误汇集:
---------------------------------------------------------------------------------------------------------
第一个报错:
构建依赖失败:openssl-devel < 1.1 被 openssh-8.3p1-1.el7.x86_64 需要 
解决方法:
[root@localhost SPECS]# vim openssh.spec 
注释掉 `BuildRequires: openssl-devel < 1.1` 这一行
---------------------------------------------------------------------------------------------------------
第二个报错:
RPM build errors:
Installed (but unpackaged) file(s) found: 
RPM build errors:
  Installed (but unpackaged) file(s) found:
  /usr/libexec/openssh/ssh-sk-helper
  /usr/share/man/man8/ssh-sk-helper.8.gz
解决方法:
vim /usr/lib/rpm/macros
#%__check_files    %{_rpmconfigdir}/check-files %{buildroot}
注释该行,好像是在377行


打包成功

Centos7 通过 rpm 升级 OpenSSH 8.3版本_解决方法


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值