以在centos7.6上编译OpenSSH9.3p1版本为例
1、环境准备
- 安装依赖包
yum install -y rpm-build gcc gcc-c++ glibc glibc-devel openssl-devel openssl prce pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts imake gtk2-devel lrzsz
- 创建编译目录
mkdir -pv /root/rpmbuild/{BUILD,BUILDROOT,RPMSSOURCES,SPECS,SRPMS}
- 从OpenSSH官网获取源码包后解压
cd /root/rpmbuild/SOURCES/ tar -zxvf openssh-9.3p1.tar.gz -C /root/rpmbuild/SPECS/
2、编译rpm包
- 修改参数
cd /root/rpmbuild/SPEC/openssh-9.3p1/contrib/redhat/ sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" openssh.spec sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" openssh.spec sed -i '/openssl-devel < 1.1/s/^/#/' openssh.spec
- 执行编译
rpmbuild -bb /root/rpmbuild/SPECS/openssh-9.3p1/contrib/redhat/openssh.spec
- 编译成功会生成的3个rpm包
ls /root/rpmbuild/RPMS/x86_64/ openssh-9.3p1-1.el7.x86_64.rpm openssh-server-9.3p1-1.el7.x86_64.rpm openssh-clients-9.3p1-1.el7.x86_64.rpm
通过上述编译获取rpm包后,即可使用rpm包进行OpenSSH升级。