centos7.9制作rpm包离线源


在centos7.9的环境联网环境下,制作一个软件包的离线源,使用yumdownloader命令制作一些特殊软件包需要逐个拉去依赖,而使用repotrack则一键拉取,并下载所需依赖,以下进行测试

制作vsftpd离线源

下载制作工具

[root@localhost ~]# yum install createrepo -y
[root@localhost ~]# yum install yum-utils -y

创建测试目录

[root@localhost ~]# mkdir vsftpd
[root@localhost ~]# cd vsftpd/
[root@localhost vsftpd]#

下载vsftpd rpm包

[root@localhost vsftpd]# yumdownloader --resolve vsftpd

创建离线源元数据

[root@localhost vsftpd]# createrepo .
[root@localhost vsftpd]# ls
repodata  vsftpd-3.0.2-29.el7_9.x86_64.rpm

测试

[root@localhost vsftpd]# mv /etc/yum.repos.d/* /home/
[root@localhost vsftpd]# cat /etc/yum.repos.d/test.repo
[ftp]
name=ftp
baseurl=file:///root/vsftpd
ggpcheck=0
enabled=1
[root@localhost vsftpd]# yum clean all;yum repolist
Loaded plugins: fastestmirror
Cleaning repos: ftp
Cleaning up list of fastest mirrors
Other repos take up 176 M of disk space (use --verbose for details)
Loaded plugins: fastestmirror
Determining fastest mirrors
ftp                                                                                              | 2.9 kB  00:00:00
ftp/primary_db                                                                                   | 2.4 kB  00:00:00
repo id                                                    repo name                                              status
ftp                                                        ftp                                                    1
repolist: 1
[root@localhost vsftpd]# yum install -y vsftpd

特殊情况

需要提供安装公钥,数字前面

Downloading packages:
warning: /var/cache/yum/x86_64/7/ftp/packages/ceph-deploy-2.0.1-0.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 460f3994: NOKEY
Public key for ceph-deploy-2.0.1-0.noarch.rpm is not installed
ceph-deploy-2.0.1-0.noarch.rpm                                                                   | 286 kB  00:00:00


Public key for ceph-deploy-2.0.1-0.noarch.rpm is not installed

需要修改打开 /etc/yum.conf 文件,找到 gpgcheck 选项,并将其设置为 0。这将禁用所有仓库的GPG检查。

[root@localhost ~]# sed -i 's/gpgcheck=1/gpgcheck=0/'g /etc/yum.conf

当制作需要依赖的离线源时

[root@localhost ~]# yum install python2-pip.noarch -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package python2-pip.noarch 0:8.1.2-14.el7 will be installed
--> Processing Dependency: python-setuptools for package: python2-pip-8.1.2-14.el7.noarch
--> Finished Dependency Resolution
Error: Package: python2-pip-8.1.2-14.el7.noarch (ftp)
           Requires: python-setuptools
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

则需要把差的依赖拉取到离线源文件中,此处我使用一台机器制作离线源,开启vsftp给另一台机器做测试

[root@storage01 repo-test]# yumdownloader --resolve python-setuptools
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
--> Running transaction check
---> Package python-setuptools.noarch 0:0.9.8-7.el7 will be reinstalled
--> Finished Dependency Resolution
python-setuptools-0.9.8-7.el7.noarch.rpm                                                         | 397 kB  00:00:00
[root@storage01 repo-test]# ls
ceph-14.2.22-0.el7.x86_64.rpm         ceph-radosgw-14.2.22-0.el7.x86_64.rpm     repodata
ceph-common-14.2.22-0.el7.x86_64.rpm  python2-pip-8.1.2-14.el7.noarch.rpm
ceph-deploy-2.0.1-0.noarch.rpm        python-setuptools-0.9.8-7.el7.noarch.rpm
[root@storage01 repo-test]# createrepo .
Spawning worker 0 with 2 pkgs
Spawning worker 1 with 2 pkgs
Spawning worker 2 with 1 pkgs
Spawning worker 3 with 1 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
#每次打入新的离线源都需要重新生成repodata元数据
[root@localhost ~]# cat /etc/yum.repos.d/test.repo
[ftp]
name=ftp
baseurl=ftp://192.168.200.30/repo-test
ggpcheck=0
enabled=1

需要将下载所需的所有依赖打入即可安装

Dependency Installed:
  python-backports.x86_64 0:1.0-8.el7              python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7
  python-ipaddress.noarch 0:1.0.16-2.el7           python-setuptools.noarch 0:0.9.8-7.el7

Complete!
[root@localhost ~]# yum install python2-pip.noarch -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Package python2-pip-8.1.2-14.el7.noarch already installed and latest version
Nothing to do
[root@localhost ~]#
[root@storage01 repo-test]# ls
ceph-14.2.22-0.el7.x86_64.rpm          python-backports-1.0-8.el7.x86_64.rpm
ceph-common-14.2.22-0.el7.x86_64.rpm   python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm
ceph-deploy-2.0.1-0.noarch.rpm         python-ipaddress-1.0.16-2.el7.noarch.rpm
ceph-radosgw-14.2.22-0.el7.x86_64.rpm  python-setuptools-0.9.8-7.el7.noarch.rpm
python2-pip-8.1.2-14.el7.noarch.rpm    repodata

repotrack命令

该命令会把下载的rpm包以及所涉及的所有依赖进行拉取,可能会下载多一些

[root@storage01 repo-test]# cd ..
[root@storage01 opt]# mkdir repo-test2
[root@storage01 opt]# cd repo-test2
[root@storage01 repo-test2]# repotrack python2-pip.noarch
Downloading basesystem-10.0-7.el7.centos.noarch.rpm
Downloading bash-4.2.46-34.el7.x86_64.rpm
Downloading bzip2-libs-1.0.6-13.el7.x86_64.rpm
Downloading ca-certificates-2020.2.41-70.0.el7_8.noarch.rpm
Downloading centos-release-7-9.2009.0.el7.centos.x86_64.rpm
Downloading chkconfig-1.7.6-1.el7.x86_64.rpm
Downloading coreutils-8.22-24.el7.x86_64.rpm
Downloading expat-2.1.0-12.el7.x86_64.rpm
Downloading filesystem-3.2-25.el7.x86_64.rpm
Downloading gawk-4.0.2-4.el7_3.1.x86_64.rpm
Downloading gdbm-1.10-8.el7.x86_64.rpm
Downloading glibc-2.17-317.el7.x86_64.rpm
Downloading glibc-common-2.17-317.el7.x86_64.rpm
Downloading gmp-6.0.0-15.el7.x86_64.rpm
Downloading grep-2.20-3.el7.x86_64.rpm
Downloading info-5.1-5.el7.x86_64.rpm
Downloading keyutils-libs-1.5.8-3.el7.x86_64.rpm
Downloading krb5-libs-1.15.1-50.el7.x86_64.rpm
Downloading libacl-2.2.51-15.el7.x86_64.rpm
Downloading libattr-2.4.46-13.el7.x86_64.rpm
Downloading libcap-2.22-11.el7.x86_64.rpm
Downloading libcom_err-1.42.9-19.el7.x86_64.rpm
Downloading libdb-5.3.21-25.el7.x86_64.rpm
Downloading libffi-3.0.13-19.el7.x86_64.rpm
Downloading libgcc-4.8.5-44.el7.x86_64.rpm
Downloading libselinux-2.5-15.el7.x86_64.rpm
Downloading libsepol-2.5-10.el7.x86_64.rpm
Downloading libstdc++-4.8.5-44.el7.x86_64.rpm
Downloading libtasn1-4.10-1.el7.x86_64.rpm
Downloading libverto-0.2.5-4.el7.x86_64.rpm
Downloading ncurses-5.9-14.20130511.el7_4.x86_64.rpm
Downloading ncurses-base-5.9-14.20130511.el7_4.noarch.rpm
Downloading ncurses-libs-5.9-14.20130511.el7_4.x86_64.rpm
Downloading nspr-4.21.0-1.el7.x86_64.rpm
Downloading nss-softokn-freebl-3.44.0-8.el7_7.x86_64.rpm
Downloading nss-util-3.44.0-4.el7_7.x86_64.rpm
Downloading openssl-libs-1.0.2k-19.el7.x86_64.rpm
Downloading p11-kit-0.23.5-3.el7.x86_64.rpm
Downloading p11-kit-trust-0.23.5-3.el7.x86_64.rpm
Downloading pcre-8.32-17.el7.x86_64.rpm
Downloading popt-1.13-16.el7.x86_64.rpm
Downloading python-2.7.5-89.el7.x86_64.rpm
Downloading python-backports-1.0-8.el7.x86_64.rpm
Downloading python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm
Downloading python-ipaddress-1.0.16-2.el7.noarch.rpm
Downloading python-libs-2.7.5-89.el7.x86_64.rpm
Downloading python-setuptools-0.9.8-7.el7.noarch.rpm
Downloading python2-pip-8.1.2-14.el7.noarch.rpm
Downloading readline-6.2-11.el7.x86_64.rpm
Downloading sed-4.2.2-7.el7.x86_64.rpm
Downloading setup-2.8.71-11.el7.noarch.rpm
Downloading sqlite-3.7.17-8.el7_7.1.x86_64.rpm
Downloading tzdata-2020a-1.el7.noarch.rpm
Downloading zlib-1.2.7-18.el7.x86_64.rpm
[root@storage01 repo-test2]# createrepo .
Spawning worker 0 with 14 pkgs
Spawning worker 1 with 14 pkgs
Spawning worker 2 with 13 pkgs
Spawning worker 3 with 13 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@storage01 repo-test2]# ls
basesystem-10.0-7.el7.centos.noarch.rpm          libtasn1-4.10-1.el7.x86_64.rpm
bash-4.2.46-34.el7.x86_64.rpm                    libverto-0.2.5-4.el7.x86_64.rpm
bzip2-libs-1.0.6-13.el7.x86_64.rpm               ncurses-5.9-14.20130511.el7_4.x86_64.rpm
ca-certificates-2020.2.41-70.0.el7_8.noarch.rpm  ncurses-base-5.9-14.20130511.el7_4.noarch.rpm
centos-release-7-9.2009.0.el7.centos.x86_64.rpm  ncurses-libs-5.9-14.20130511.el7_4.x86_64.rpm
chkconfig-1.7.6-1.el7.x86_64.rpm                 nspr-4.21.0-1.el7.x86_64.rpm
coreutils-8.22-24.el7.x86_64.rpm                 nss-softokn-freebl-3.44.0-8.el7_7.x86_64.rpm
expat-2.1.0-12.el7.x86_64.rpm                    nss-util-3.44.0-4.el7_7.x86_64.rpm
filesystem-3.2-25.el7.x86_64.rpm                 openssl-libs-1.0.2k-19.el7.x86_64.rpm
gawk-4.0.2-4.el7_3.1.x86_64.rpm                  p11-kit-0.23.5-3.el7.x86_64.rpm
gdbm-1.10-8.el7.x86_64.rpm                       p11-kit-trust-0.23.5-3.el7.x86_64.rpm
glibc-2.17-317.el7.x86_64.rpm                    pcre-8.32-17.el7.x86_64.rpm
glibc-common-2.17-317.el7.x86_64.rpm             popt-1.13-16.el7.x86_64.rpm
gmp-6.0.0-15.el7.x86_64.rpm                      python-2.7.5-89.el7.x86_64.rpm
grep-2.20-3.el7.x86_64.rpm                       python2-pip-8.1.2-14.el7.noarch.rpm
info-5.1-5.el7.x86_64.rpm                        python-backports-1.0-8.el7.x86_64.rpm
keyutils-libs-1.5.8-3.el7.x86_64.rpm             python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm
krb5-libs-1.15.1-50.el7.x86_64.rpm               python-ipaddress-1.0.16-2.el7.noarch.rpm
libacl-2.2.51-15.el7.x86_64.rpm                  python-libs-2.7.5-89.el7.x86_64.rpm
libattr-2.4.46-13.el7.x86_64.rpm                 python-setuptools-0.9.8-7.el7.noarch.rpm
libcap-2.22-11.el7.x86_64.rpm                    readline-6.2-11.el7.x86_64.rpm
libcom_err-1.42.9-19.el7.x86_64.rpm              repodata
libdb-5.3.21-25.el7.x86_64.rpm                   sed-4.2.2-7.el7.x86_64.rpm
libffi-3.0.13-19.el7.x86_64.rpm                  setup-2.8.71-11.el7.noarch.rpm
libgcc-4.8.5-44.el7.x86_64.rpm                   sqlite-3.7.17-8.el7_7.1.x86_64.rpm
libselinux-2.5-15.el7.x86_64.rpm                 tzdata-2020a-1.el7.noarch.rpm
libsepol-2.5-10.el7.x86_64.rpm                   zlib-1.2.7-18.el7.x86_64.rpm
libstdc++-4.8.5-44.el7.x86_64.rpm

测试

[root@localhost ~]# yum remove python2-pip.noarch -y
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package python2-pip.noarch 0:8.1.2-14.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                        Arch                      Version                         Repository               Size
========================================================================================================================
Removing:
 python2-pip                    noarch                    8.1.2-14.el7                    @ftp                    7.2 M

Transaction Summary
========================================================================================================================
Remove  1 Package

Installed size: 7.2 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : python2-pip-8.1.2-14.el7.noarch                                                                      1/1
  Verifying  : python2-pip-8.1.2-14.el7.noarch                                                                      1/1

Removed:
  python2-pip.noarch 0:8.1.2-14.el7

Complete!
[root@localhost ~]#
[root@localhost ~]# cat /etc/yum.repos.d/test.repo
[ftp]
name=ftp
baseurl=ftp://192.168.200.30/repo-test2
ggpcheck=0
enabled=1
[root@localhost ~]# yum install python2-pip.noarch -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
ftp                                                                                              | 2.9 kB  00:00:00
ftp/primary_db                                                                                   |  42 kB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package python2-pip.noarch 0:8.1.2-14.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                        Arch                      Version                          Repository              Size
========================================================================================================================
Installing:
 python2-pip                    noarch                    8.1.2-14.el7                     ftp                    1.7 M

Transaction Summary
========================================================================================================================
Install  1 Package

Total download size: 1.7 M
Installed size: 7.2 M
Downloading packages:
python2-pip-8.1.2-14.el7.noarch.rpm                                                              | 1.7 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python2-pip-8.1.2-14.el7.noarch                                                                      1/1
  Verifying  : python2-pip-8.1.2-14.el7.noarch                                                                      1/1

Installed:
  python2-pip.noarch 0:8.1.2-14.el7

Complete!
[root@localhost ~]# yum clean all;yum repolist
Loaded plugins: fastestmirror
Cleaning repos: ftp
Cleaning up list of fastest mirrors
Other repos take up 176 M of disk space (use --verbose for details)
Loaded plugins: fastestmirror
Determining fastest mirrors
ftp                                                                                              | 2.9 kB  00:00:00
ftp/primary_db                                                                                   |  42 kB  00:00:00
repo id                                                    repo name                                              status
ftp                                                        ftp                                                    54
repolist: 54
[root@localhost ~]#

猜你喜欢

转载自blog.csdn.net/m0_56363537/article/details/131218584