1、安装依赖环境
2、克隆镜像仓库
克隆仓库后并执行脚本会自动下载文件到本地downloads目录中
要网络环境够好,不然很容易失败
git clone https://github.com/boypt/openssh-rpms.git
[root@node1 tmp]# cd openssh-rpms/
[root@node1 openssh-rpms]# ls
[root@node1 openssh-rpms]# ./pullsrc.sh
amzn1 amzn2023 docker downloads el6 pullsrc.sh version.env
amzn2 compile.sh docker.README.md el5 el7 README.md
[root@node1 openssh-rpms]# cd downloads/
[root@node1 downloads]# ls
openssh-9.7p1.tar.gz openssl-3.0.14.tar.gz x11-ssh-askpass-1.2.4.1.tar.gz
[root@node1 downloads]#
[root@node1 downloads]# du * -sh
1.8M openssh-9.7p1.tar.gz
15M openssl-3.0.14.tar.gz
32K x11-ssh-askpass-1.2.4.1.tar.gz
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
3、执行RPM制作
等待一段时间以后,会生成可离线安装的RPM包
[root@node1 openssh-rpms]# ./compile.sh
Distro undefined, please specify manually: el5 el6 el7 amzn1 amzn2 amzn2023
Current OS:
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.5.1804 (Core)
CentOS Linux release 7.5.1804 (Core)
Current OS vendor: redhat
This script works only in el5/el6/el7/amzn1/amzn2/amzn2023
eg: ./compile.sh el7
[root@node1 openssh-rpms]# ./compile.sh el7
/tmp/openssh-rpms/el7 /tmp/openssh-rpms
‘/tmp/openssh-rpms/downloads/openssh-9.7p1.tar.gz’ -> ‘./SOURCES/openssh-9.7p1.tar.gz’
‘/tmp/openssh-rpms/downloads/openssl-3.0.14.tar.gz’ -> ‘./SOURCES/openssl-3.0.14.tar.gz’
‘/tmp/openssh-rpms/downloads/x11-ssh-askpass-1.2.4.1.tar.gz’ -> ‘./SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz’
Building target platforms: x86_64
Building for target x86_64
error: Failed build dependencies: //报错
krb5-devel is needed by openssh-9.7p1-1.el7.centos.x86_64
/tmp/openssh-rpms
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
[root@node1 openssh-rpms]# ./compile.sh el7
/tmp/openssh-rpms/el7 /tmp/openssh-rpms
removed ‘./SOURCES/openssh-9.7p1.tar.gz’
‘/tmp/openssh-rpms/downloads/openssh-9.7p1.tar.gz’ -> ‘./SOURCES/openssh-9.7p1.tar.gz’
removed ‘./SOURCES/openssl-3.0.14.tar.gz’
‘/tmp/openssh-rpms/downloads/openssl-3.0.14.tar.gz’ -> ‘./SOURCES/openssl-3.0.14.tar.gz’
removed ‘./SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz’
‘/tmp/openssh-rpms/downloads/x11-ssh-askpass-1.2.4.1.tar.gz’ -> ‘./SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz’
Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.tYlqyw
+ umask 022
+ cd /tmp/openssh-rpms/el7/BUILD
+ cd /tmp/openssh-rpms/el7/BUILD
+ rm -rf openssh-9.7p1
+ /usr/bin/gzip -dc /tmp/openssh-rpms/el7/SOURCES/openssh-9.7p1.tar.gz
+ /usr/bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd openssh-9.7p1
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ mkdir -p openssl
+ tar xfz /tmp/openssh-rpms/el7/SOURCES/openssl-3.0.14.tar.gz --strip-components=1 -C openssl
+ pushd openssl
/tmp/openssh-rpms/el7/BUILD/openssh-9.7p1/openssl /tmp/openssh-rpms/el7/BUILD/openssh-9.7p1
+ ./config shared zlib -fPIC
Can't locate IPC/Cmd.pm in @INC (@INC contains: /tmp/openssh-rpms/el7/BUILD/openssh-9.7p1/openssl/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /tmp/openssh-rpms/el7/BUILD/openssh-9.7p1/openssl/external/perl/Text-Template-1.56/lib) at /tmp/openssh-rpms/el7/BUILD/openssh-9.7p1/openssl/util/perl/OpenSSL/config.pm line 19.
BEGIN failed--compilation aborted at /tmp/openssh-rpms/el7/BUILD/openssh-9.7p1/openssl/util/perl/OpenSSL/config.pm line 19.
Compilation failed in require at /tmp/openssh-rpms/el7/BUILD/openssh-9.7p1/openssl/Configure line 23.
BEGIN failed--compilation aborted at /tmp/openssh-rpms/el7/BUILD/openssh-9.7p1/openssl/Configure line 23.
error: Bad exit status from /var/tmp/rpm-tmp.tYlqyw (%prep)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.tYlqyw (%prep)
/tmp/openssh-rpms
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
[root@node1 openssh-rpms]# ./compile.sh el7 再次编译就可以了
************************************省略
Obsoletes: ssh-server
Processing files: openssh-debuginfo-9.7p1-1.el7.centos.x86_64
Provides: openssh-debuginfo = 9.7p1-1.el7.centos openssh-debuginfo(x86-64) = 9.7p1-1.el7.centos
Requires(rpmlib): rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Checking for unpackaged file(s): /usr/lib/rpm/check-files /tmp/openssh-rpms/el7/BUILDROOT/openssh-9.7p1-1.el7.centos.x86_64
Wrote: /tmp/openssh-rpms/el7/SRPMS/openssh-9.7p1-1.el7.centos.src.rpm
Wrote: /tmp/openssh-rpms/el7/RPMS/x86_64/openssh-9.7p1-1.el7.centos.x86_64.rpm
Wrote: /tmp/openssh-rpms/el7/RPMS/x86_64/openssh-clients-9.7p1-1.el7.centos.x86_64.rpm
Wrote: /tmp/openssh-rpms/el7/RPMS/x86_64/openssh-server-9.7p1-1.el7.centos.x86_64.rpm
Wrote: /tmp/openssh-rpms/el7/RPMS/x86_64/openssh-debuginfo-9.7p1-1.el7.centos.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.hWKV5b
+ umask 022
+ cd /tmp/openssh-rpms/el7/BUILD
+ cd openssh-9.7p1
+ rm -rf /tmp/openssh-rpms/el7/BUILDROOT/openssh-9.7p1-1.el7.centos.x86_64
+ exit 0
/tmp/openssh-rpms
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
4、查询生成的RPM文件