目录
以下是打包好的OpenSSH 8.4p1,包括7个rpm包,欢迎下载使用。
一、安装相关依赖包
根据以往经验,需要安装wget、rpm-build、openssl-devel、krb5-devel、pam-devel。其中wget用于下载源码,rpm-build是打包工具,其余三个是编译OpenSSH的依赖。
[root@toy ~]# yum install wget rpm-build openssl-devel krb5-devel pam-devel
二、创建rpmbuild目录并下载源码
- 此时运行rpmbuild -ba openssh.spec会报错,我们的目的是得到一个完整的rpmbuild目录,省的一个一个创建。
- 下载openssh-8.4p1.tar.gz、x11-ssh-askpass-1.2.4.1.tar.gz两个源码包。
- 将两个源码包的所属用户、所属组都改为sshd。
- 解压openssh源码包,并将openssh.spec文件放到指定位置。
- 注释掉openssh.spec的BuildRequires: openssl-devel < 1.1,防止报错。
[root@toy ~]# rpmbuild -ba openssh.spec
[root@toy ~]# cd ~/rpmbuild/SOURCES
[root@toy SOURCES]# wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz
[root@toy SOURCES]# wget http://ftp.riken.jp/Linux/momonga/6/Everything/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz
[root@toy SOURCES]# chown sshd:sshd openssh-8.4p1.tar.gz
[root@toy SOURCES]# chown sshd:sshd x11-ssh-askpass-1.2.4.1.tar.gz
[root@toy SOURCES]# tar xvzv openssh-8.4p1.tar.gz
[root@toy SOURCES]# cp openssh-8.4p1/contrib/redhat/openssh.spec ../SPECS/
[root@toy SOURCES]# cd ../SPECS/
[root@toy SPECS]# vim openssh.spec
#BuildRequires: openssl-devel < 1.1
三、打包及排错
打包,此时报错缺少3个依赖包,安装即可。安装完libXt-devel、imake、gtk2-devel这3个依赖包后再次编译。
[root@toy SPECS]# rpmbuild -ba openssh.spec
[root@toy SPECS]# yum install libXt-devel imake gtk2-devel
看到有7行Wrote,生成了rpm包,打包完成。1个在SRPMS目录下,6个在RPMS目录下。
……
Wrote: /root/rpmbuild/SRPMS/openssh-8.4p1-1.el7.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-8.4p1-1.el7.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-clients-8.4p1-1.el7.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-server-8.4p1-1.el7.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-askpass-8.4p1-1.el7.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-askpass-gnome-8.4p1-1.el7.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-debuginfo-8.4p1-1.el7.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.AtLkIV
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd openssh-8.4p1
+ rm -rf /root/rpmbuild/BUILDROOT/openssh-8.4p1-1.el7.x86_64
+ exit 0
[root@toy SPECS]#
四、升级到OpenSSH 8.4p1
切换到RPMS目录,使用rpm -Uvh或者yum localinstall升级三个包即可。
[root@toy SPECS]# cd ../RPMS/x86_64/
[root@toy x86_64]# ll
total 4564
-rw-r--r-- 1 root root 606720 Nov 22 22:57 openssh-8.4p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 44348 Nov 22 22:57 openssh-askpass-8.4p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 25580 Nov 22 22:57 openssh-askpass-gnome-8.4p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 561448 Nov 22 22:57 openssh-clients-8.4p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 2996936 Nov 22 22:57 openssh-debuginfo-8.4p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 423404 Nov 22 22:57 openssh-server-8.4p1-1.el7.x86_64.rpm
[root@toy x86_64]# rpm -Uvh ./openssh-8.4p1-1.el7.x86_64.rpm ./openssh-server-8.4p1-1.el7.x86_64.rpm ./openssh-clients-8.4p1-1.el7.x86_64.rpm
[root@toy x86_64]# ssh -V
OpenSSH_8.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
a