Redhat7源码ssh包编译为RPM包
openssh下载位置:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/
x11-ssh-askpass依赖包下载位置:https://src.fedoraproject.org/repo/pkgs/openssh
安装过程
1. 安装相关依赖
yum -y install gdb imake libXt-devel gtk2-devel rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel unzip krb5-devel libX11-devel initscripts
2. 创建编译openssh目录
mkdir -p /root/rpmbuild/{SOURCES,SPECS}
3. 上传openssh和x11-ssh-askpass到/root/rpmbuild/SOURCES目录
[root@localhost SOURCES]# ls
openssh-9.3p1.tar.gz x11-ssh-askpass-1.2.4.1.tar.gz
[root@localhost SOURCES]# pwd
/root/rpmbuild/SOURCES
4. 解压 openssh安装包
[root@localhost SOURCES]# tar xzvf openssh-9.3p1.tar.gz
5. 复制openssh.spec文件到SPECS目录
[root@localhost SOURCES]# cp openssh-9.3p1/contrib/redhat/openssh.spec /root/rpmbuild/SPECS
5. 修改openssh.spec文件
[root@localhost SOURCES]# sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec
[root@localhost SOURCES]# sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec
6. 注释BuildRequires: openssl-devel < 1.1
vim /root/rpmbuild/SPECS/openssh.spec
BuildRequires: openssl-devel >= 1.0.1
#BuildRequires: openssl-devel < 1.1
根据自己openssl版本,注释
7. 开始编译
[root@localhost SOURCES]# rpmbuild -ba /root/rpmbuild/SPECS/openssh.spec
8. 操作验证
1. 编译完成后查看返回状态码是否为0
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.qM0dgN
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd openssh-9.3p1
+ rm -rf /root/rpmbuild/BUILDROOT/openssh-9.3p1-1.el7.x86_64
+ exit 0
2. 去/root/rpmbuild/RPMS/x86_64目录查看是否生成openssh相关rpm包
[root@localhost SOURCES]# cd /root/rpmbuild/RPMS/x86_64
[root@localhost x86_64]# ls
openssh-9.3p1-1.el7.x86_64.rpm openssh-askpass-gnome-9.3p1-1.el7.x86_64.rpm openssh-debuginfo-9.3p1-1.el7.x86_64.rpm
openssh-askpass-9.3p1-1.el7.x86_64.rpm openssh-clients-9.3p1-1.el7.x86_64.rpm openssh-server-9.3p1-1.el7.x86_64.rpm