在Centos8上将二进制openssh.tar.gz包编译成rpm包的笔记

254 阅读1分钟

#环境说明:

[root@tower ~]# cat /etc/redhat-release 
CentOS Linux release 8.4.2105
[root@tower ~]# uname -r
4.18.0-305.3.1.el8.x86_64

#依赖包安装

yum install rpm-build glibc-devel krb5-devel openssl-devel perl gcc pam-devel -y

#下载并准备相关包: x11-ssh-askpass-1.2.4.1.tar.gz openssh-9.0p1.tar.gz src.fedoraproject.org/repo/pkgs/o…

#编译环境准备

rpmbuild -ba openssh.spec #会因缺失文件报错,但是会产生rpmbuild文件夹以及子目录;
[root@tower ~]# ls rpmbuild/
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

将x11-ssh-askpass-1.2.4.1.tar.gz openssh-9.0p1.tar.gz放在rpmbuild/SOURCES文件夹

#从压缩包中提取openssh.spec文件并放在rpmbuild/SPECS文件夹
tar -zxvf openssh-9.0p1.tar.gz openssh-9.0p1/contrib/redhat/openssh.spec 


#修改rpmbuild/SPECS/openssh.spec文件(将默认的0改为1)
# Do we want to disable building of x11-askpass? (1=yes 0=no)
%global no_x11_askpass 1

# Do we want to disable building of gnome-askpass? (1=yes 0=no)
%global no_gnome_askpass 1

注释掉,原因是系统的的openssl-devel 版本高于1.1
#BuildRequires: openssl-devel < 1.1

生成rpm包:
rpmbuild -ba openssh.spec