Linux中用yum/dnf管理软件包

2023-12-13 06:09:22

本章主要介绍使用yum对软件包进行管理

  • yum的介绍
  • 搭建yum源
  • 创建私有仓库
  • yum客户端的配置
  • yum的基本使用
  • 使用第三方yum源

使用rpm安装包时经常会遇到一个问题就是包依赖

[root@redhat8 ~]# rpm -ivh /mnt/AppStream/Packages/httpd-2.4.37-41.module+el8.5.0+11772+c8e0c271.x86_64.rpm 
错误:依赖检测失败:
	httpd-filesystem 被 httpd-2.4.37-41.module+el8.5.0+11772+c8e0c271.x86_64 需要
	httpd-filesystem = 2.4.37-41.module+el8.5.0+11772+c8e0c271 被 httpd-2.4.37-41.module+el8.5.0+11772+c8e0c271.x86_64 需要
	httpd-tools = 2.4.37-41.module+el8.5.0+11772+c8e0c271 被 httpd-2.4.37-41.module+el8.5.0+11772+c8e0c271.x86_64 需要
	libapr-1.so.0()(64bit) 被 httpd-2.4.37-41.module+el8.5.0+11772+c8e0c271.x86_64 需要
	libaprutil-1.so.0()(64bit) 被 httpd-2.4.37-41.module+el8.5.0+11772+c8e0c271.x86_64 需要
	mod_http2 被 httpd-2.4.37-41.module+el8.5.0+11772+c8e0c271.x86_64 需要
	system-logos(httpd-logo-ng) 被 httpd-2.4.37-41.module+el8.5.0+11772+c8e0c271.x86_64 需要
[root@redhat8 ~]#

这里<tab>的意思是按【Tab】键

所谓包依赖,就是在安装A时必须先把B和C安装上去。如果用rpm一个个安装是非常困难的,这里可以使用dnf或yum命令来解决。yum命令其实是软链接到dnf命令上的,所以输入yum或dnf都可以,后文都使用yum命令介绍

1.1 yum架构介绍

为了方便理解,先看图

可能我们经常会使用360软件管家管理软件包,在360服务器上有各种软件,在PC上的 360软件管家中搜索想要安装的软件,然后单击【安装】按钮,这样就可以把软件自动安装 到本地了,很方便

yum的架构也是类似的

在服务器上存在某个目录中存储了大量的软件包,然后通过ftp或http把此目录共享出去,使得客户端可以通过ftp或http能访问到此目录

在服务器端所存储的这些软件包中,服务器是知道哪些包之间有依赖关系的,例如,A、 B、C三者之间存在依赖关系,所以当客户端发布一个请求说要安装A时,如图

此时发现A和B、C有依赖关系,所以客户端会把A、B、C三 者都从服务器下载到本机的缓存,然后再把这三个包一起给安装上去

如果假设A和B、C、X有依赖关系,但是X这个包并没有出现 在现在的这个源中,那么当客户端要安装A时,因为缺少了X,所 以安装是失败的。此时我们就需要在客户端上指定多个源,保证所有的这些源中包含了所有需要的包,如图

因为客户端指定了两个源,所以当客户端发布一个请求说要 安装A时,此时从第一个源中检测到了需要的依赖包B、C,然 后从第二个源中找到了X,客户端就会把这四个包一起下载到本地缓存中并进行安装

1.2 使用光盘搭建yum源

实验结构

两台Linux系统的虚拟机(redhat8和node1)

因为光盘中包括了最常用的软件包,所以现在就把光盘的内容作为源,用vsftpd将光盘的内容共享出去。在rpm章节 已经将 vsftpd安装上去了,如果没有安装请按前面章节讲过的内容自行安装好

注意

下面的操作都是在redhat8上做的

修改letc/vsftpd/vsftpd.conf中的anonymous enable选项

由anonymous_enable=NO修改为anonymous_enable=YES,并添加如下命令

1 pasv_min_port=10010
2 pasv_max_port=10020

保存退出并启动vsftpd

[root@redhat8 vsftpd]# systemctl enable vsftpd --now
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
[root@redhat8 vsftpd]#

如果已经启动过了,则通过systemctl restart vsftpd重启一下,使刚做的配置生效

修改防火墙

[root@redhat8 vsftpd]# firewall-cmd --add-port=20-21/tcp --permanent 
success
[root@redhat8 vsftpd]# firewall-cmd --add-port=10010-10020/tcp --permanent 
success
[root@redhat8 vsftpd]# firewall-cmd --reload 
success
[root@redhat8 vsftpd]#

把SELinux服务关闭

创建目录/var/ftp/dvd,然后把光盘挂载到此目录上

[root@redhat8 ~]# mkdir /var/ftp/dvd
[root@redhat8 ~]# mount /dev/cdrom /var/ftp/dvd/
mount: /var/ftp/dvd: WARNING: device write-protected, mounted read-only.
[root@redhat8 ~]# 

这样其他机器通过ftp访问/var/ftp/dvd时,访问的就是光盘中的内容了。设置开机自动挂载,修改/etc/fstab

[root@redhat8 ~]# grep ftp /etc/fstab 
/dev/cdrom				/var/ftp/dvd		iso9660	  defaults        0 0
[root@redhat8 ~]#

至此,服务器上的yum 源就已经配置好了,/var/ftp/dvd中的内容

[root@redhat8 ~]# ls /var/ftp/dvd/
AppStream  EULA              images      RPM-GPG-KEY-redhat-beta
BaseOS     extra_files.json  isolinux    RPM-GPG-KEY-redhat-release
EFI        GPL               media.repo  TRANS.TBL
[root@redhat8 ~]#

此时客户端不能直接把此目录作为源来使用,服务器是知道每个包和其他包之间的依赖关系的,因为系统会把某个目录(包括子目录)中的rpm包的元数据信息放在repodata目录中

但是在/var/ftp/dvd中并没有repodata目录(不能单纯地用mkdir命令把此目录创建出 来,创建出来里面没有元数据是没用的),所以 /var/ftp/dvd并不能直接作为源来使用。先 来看AppStream目录的内容

[root@redhat8 ~]# ls /var/ftp/dvd/AppStream/
Packages  repodata
[root@redhat8 ~]#

这里repodata是 AppStream下的目录,记录了AppStream目录下所有的rpm信息,此处AppStream中所有的rpm都存储在Packages目录下了。repodata中的内容大概是这样的

[root@redhat8 ~]# ls /var/ftp/dvd/AppStream/repodata/
167822ee59a5cbd329d31b2ff030cb2146b0fd624e390ffe3ac98fb641fb62f4-comps-AppStream.x86_64.xml.gz
2adf8b14deae5cde9dd015b563abdfba1d2a4c96659bf8386ff182f9400b023b-comps-AppStream.x86_64.xml
689bd45a22fedbffbc3e3b9d82109a2c6ed02ee8b2962136d63a3026f24d6ef0-filelists.xml.gz
99f06c9bf207d0b64dfecfeb768d255367de7e22522ae4669c2bf8361a2df4ef-other.xml.gz
b591d9fa12e0ba5c6d75b84b605f44c1daefd514068152a3fd8ba53fdb5975eb-primary.xml.gz
d12f84e558ef647914eb6d20f034920765390d579888595800f915a133457a22-modules.yaml.gz
ee6f2ed466e70c8ee4dd48d8aa3897707349e31e3f546a82e121cc53cc82d8a8-productid.gz
productid
repomd.xml
TRANS.TBL
[root@redhat8 ~]#

再来看BaseOS目录的内容

[root@redhat8 ~]# ls /var/ftp/dvd/BaseOS/
Packages  repodata
[root@redhat8 ~]#

这里repodata是 BaseOS下的目录,记录了BaseOS目录下所有的rpm信息,此处BaseOS中所有的rpm都存储在Packages目录下了

总结:repodata目录中记录了repodata所在目录下所有的rpm信息,例如BaseOS 下 的repodata 记录了BaseOS目录下所有的rpm信息

所以,当前server上有两个源,分别是/var/ftp/dvd/AppStream 和/var/ftp/dvd/BaseOS。客户端要访问这两个源,分别通过 ftp://192.168.26.101/dvd/AppStream和 ftp://192.168.26.101/dvd/BaseOS 即可

1.3 创建私有仓库

在server上利用光盘对外提供了两个源分别是/var/ftp/dvd/ AppStream和 /var/ftp/dvd/BaseOS,这两个源是光盘中自带的。下面练习如何创建一个自定义的源

先配置server使用光盘作为源,在redhat8(192.168.161.16这台机器)中把光盘挂载 到/mnt 上,并在/etc/fstab中设置开机自动挂载

[root@redhat8 ~]# grep mnt /etc/fstab 
/dev/cdrom				  /mnt		          iso9660 defaults        0 0
[root@redhat8 ~]#

这样访问/mnt时访问的就是光盘了。创建/etc/yum.repos.d/aa.repo的内容如下

[root@redhat8 ~]# cat /etc/yum.repos.d/aa.repo
[aa]
name=aa
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0

[bb]
name=bb
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
[root@redhat8 ~]#

需要注意的是,这里file:后面是3个/,file:是类似于http;/l、ftp:;这样的写法,第三个/表 示的是绝对路径

通过yum install安装createrepo工具包

[root@redhat8 ~]# yum -y install createrepo
正在更新 Subscription Management 软件仓库。

然后创建一个目录/var/ftp/myrepo

[root@redhat8 ~]# mkdir /var/ftp/myrepo
[root@redhat8 ~]#

从光盘中拷贝一个测试用的安装包,这里就选择vsftpd的安装包。拷贝 vsftpd到 /var/ftplmyrepo中

[root@redhat8 ~]# cp /mnt/AppStream/Packages/vsftpd-3.0.3-34.el8.x86_64.rpm /var/ftp/myrepo/
[root@redhat8 ~]#

现在/var/ftp/myrepo中包含了一个 vsftpd的安装包

通过createrepo工具包对/var/ftp/myrepo进行操作

[root@redhat8 ~]# createrepo -v /var/ftp/myrepo/
12:18:44: Version: 0.17.2 (Features: DeltaRPM LegacyWeakdeps )
12:18:44: Signal handler setup
12:18:44: Thread pool ready
Directory walk started
12:18:44: Adding pkg: /var/ftp/myrepo/vsftpd-3.0.3-34.el8.x86_64.rpm
12:18:44: Dir to scan: /var/ftp/myrepo/.repodata
12:18:44: Package count: 1
Directory walk done - 1 packages
Temporary output repo path: /var/ftp/myrepo/.repodata/
12:18:44: Creating .xml.gz files
12:18:44: Setting number of packages
Preparing sqlite DBs
12:18:44: Creating databases
12:18:44: Thread pool user data ready
Pool started (with 5 workers)
Pool finished
12:18:44: Generating repomd.xml
12:18:44: Old repodata doesn't exists: Cannot rename /var/ftp/myrepo/repodata/ -> /var/ftp/myrepo/repodata.old.2406.20231212121844.195356: No such file or directory
12:18:44: Renamed /var/ftp/myrepo/.repodata/ -> /var/ftp/myrepo/repodata/
12:18:44: Memory cleanup
12:18:44: All done
[root@redhat8 ~]#

/var/ftp/myrepo目录中的内容如下

[root@redhat8 ~]# ls /var/ftp/myrepo/
repodata  vsftpd-3.0.3-34.el8.x86_64.rpm
[root@redhat8 ~]# 

这里生成了repodata,里面包含了/var/ftp/myrepo中所有的rpm包(这里就一个 vsftpd)的信息,那么/var/ftp/myrepo也可以作为一个源来使用了

1.4 yum客户端的配置

客户端要安装软件包必须指定使用哪些源,在客户端上指定源的方法是在目录/etc/yum.repos.d中创建后缀是repo的文件。文件名是什么无所谓,但后缀必须是 repo,格式如下

1 [名称] ‐‐‐‐用于标注不同的源
2 name= ‐‐‐‐注释信息
3 baseurl= ‐‐‐‐指定源的URL地址
4 enabled= ‐‐‐用于指定是否启用这个源,值有0和1
5 0‐‐‐不使用这个源
6 1‐‐‐使用这个源
7 enabled也可以写成enable
8 gpgcheck= ‐‐‐‐用于指定安装的软件包是否要进行数字签名的验证,值有0和1
9 0‐‐不对每个安装包进行数字签名验证
10 1‐‐对每个包做数字签名的验证
11 gpgkey=/path/如果上面 gpgcheck的值设置为1,需要使用此选项指定公钥;如果上面gp
gcheck的值设置为0,这个选项可以不写。

在服务器端已经配置了两个源,下面配置客户端让其能使用这两个源

在/etc/yum.repos.d中创建aa.repo(node1)

[root@node1 ~]# cat /etc/yum.repos.d/aa.repo
[aa]
name=aa
baseurl=ftp://192.168.161.16/dvd/AppStream
enabled=1
gpgcheck=0

[bb]
name=bb
baseurl=ftp://192.168.161.16/dvd/BaseOS
enabled=1
gpgcheck=0
[root@node1 ~]#

这里在aa.repo中配置了两个源,分别标记为aa和 bb。可以把多个源写在同一个repo文 件中,也可以把多个源写在不同的repo文件中

当通过ftp://192.168.8.11来访问服务器时,访问的是服务器的/var/ftp目录,千万不要写成ftp://192.168.26.101/var/ftp了,否则对应的就是服务器的/var/ftp/var/tp目录了

ftp://192.168.8.11/dvd对应的是服务器的/var/ftp/dvd目录,但是这个不能作为源,因为/var/ftp/dvd下没有对应的repodata目录记录/var/ftp/dvd中的 rpm信息

因为rpm包都是存储在Packages中的,所以有人可能说我怕系统找不到软件包,所以写成baseurl=ftp:/192.168.26.101/dvd/BaseOS/Packages行不行?答案是不行的,你不用担心系统找不到rpm在哪里。写成baseurl=ftp://192.168.26.100/dvd/BaseOS,会通过读取它的子目录repodata中的数据从而知道rpm在哪个目录中

此时/etc/yum.repos.d中的文件如下

[root@node1 ~]# ls /etc/yum.repos.d/
aa.repo  redhat.repo
[root@node1 ~]#

这里/etclyum.repos.d下面的redhat.repo是系统自动生成的可以不用管,删除不删除都 无所谓

node1通过ftp访问redhat8上的源。如果想直接使用本地光盘作为yum源,那么可以把光盘挂载到某个目录上,然后直接使用此目录作为源

1.5 yum的基本使用

?通过yum repolist查看当前正在使用的源

[root@node1 ~]# yum repolist 
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: ftp.sjtu.edu.cn
源标识                            源名称                               状态
aa                                aa                                    6,220
base/7/x86_64                     CentOS-7 - Base                      10,072
bb                                bb                                    1,708
extras/7/x86_64                   CentOS-7 - Extras                       518
updates/7/x86_64                  CentOS-7 - Updates                    5,434
repolist: 23,952
[root@node1 ~]#

可以看到,现在正在使用两个源aa和 bb,由/etc/yum.repos.d/aa.repo文件里中括号的部分定义

如果/etc/yum.repos.d/aa.repo的内容发生了改变,需要用yum clean all 命令清空一下缓存

[root@node1 ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: aa base bb extras updates
Cleaning up list of fastest mirrors
Other repos take up 62 k of disk space (use --verbose for details)
[root@node1 ~]#

重新创建缓存数据用yum makecache命令

[root@node1 ~]# yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
x^H * base: mirrors.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.aliyun.com
aa                                                    | 3.2 kB     00:00     
base                                                  | 3.6 kB     00:00     
bb                                                    | 2.8 kB     00:00     
extras                                                | 2.9 kB     00:00     
updates                                               | 2.9 kB     00:00     
(1/18): aa/group_gz                                     | 109 kB   00:00     
(2/18): aa/primary                                      | 1.7 MB   00:00     
(3/18): aa/other                                        | 1.1 MB   00:00     
(4/18): aa/filelists                                    | 5.4 MB   00:00     
(5/18): bb/group_gz                                     |  74 kB   00:00     
(6/18): bb/filelists                                    | 1.2 MB   00:00     
(7/18): bb/primary                                      | 1.1 MB   00:00     
(8/18): bb/other                                        | 443 kB   00:00     
(9/18): base/7/x86_64/group_gz                          | 153 kB   00:06     
(10/18): extras/7/x86_64/filelists_db                   | 303 kB   00:06     
(11/18): extras/7/x86_64/other_db                       | 150 kB   00:00     
(12/18): extras/7/x86_64/primary_db                     | 250 kB   00:00     
(13/18): base/7/x86_64/other_db                         | 2.6 MB   00:12     
(14/18): updates/7/x86_64/other_db                      | 1.5 MB   00:05     
(15/18): updates/7/x86_64/primary_db                    |  24 MB   00:17     
(16/18): base/7/x86_64/primary_db                       | 6.1 MB   00:24     
(17/18): base/7/x86_64/filelists_db                     | 7.2 MB   00:41     
(18/18): updates/7/x86_64/filelists_db                  |  13 MB   00:40     
aa                                                                 6220/6220
aa                                                                 6220/6220
aa                                                                 6220/6220
bb                                                                 1708/1708
bb                                                                 1708/1708
bb                                                                 1708/1708
元数据缓存已建立
[root@node1 ~]#

这步不是必需的,即使不重新创建缓存数据,当我们下次使用yum时也会自动创建

1.5.1 查询

想查询yum源中是否存在某个包,可以通过 yum search或 yum list来查询。例如,要查询lrzsz这个包

[root@node1 ~]# yum search lrzsz
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.aliyun.com
============================ N/S matched: lrzsz =============================
lrzsz.x86_64 : The lrz and lsz modem communications programs

  名称和简介匹配 only,使用“search all”试试。
[root@node1 ~]#

对于yum search 来说,可以在yum源中查找包名中含有lrzsz的包,如果输入的是yumsearch lrzs,它也是能查找到的

[root@node1 ~]# yum search lrzs
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.aliyun.com
============================= N/S matched: lrzs =============================
lrzsz.x86_64 : The lrz and lsz modem communications programs

  名称和简介匹配 only,使用“search all”试试。
[root@node1 ~]#

也就是yum search后面跟的包名可以不是完整的包名,但是这个命令查询的结果无法判断这个包在系统上是否安装。可以使用yum list命令查看包是否已经安装

[root@node1 ~]# yum list lrzsz
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.aliyun.com
已安装的软件包
lrzsz.x86_64                     0.12.20-36.el7                     @anaconda
可安装的软件包
lrzsz.x86_64                     0.12.20-43.el8                     bb       
[root@node1 ~]#

这里显示“可安装的”说明在系统中并没有安装,最后的bb说明lrzsz是在bb这个源中 的

对于yum list来说,后面必须跟上完整的包名,如果跟的不是完整的包名则是查询不出来的

[root@node1 ~]# yum list lrzs
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.aliyun.com
错误:没有匹配的软件包可以列出
[root@node1 ~]#

所以,在使用yum list命令时,可以结合通配符一起使用

[root@node1 ~]# yum list lrzs\*
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.aliyun.com
已安装的软件包
lrzsz.x86_64                     0.12.20-36.el7                     @anaconda
可安装的软件包
lrzsz.x86_64                     0.12.20-43.el8                     bb       
[root@node1 ~]#

这里的意思是在yum源中查找以lrzs开头的包,*前面加上\的目的是防止 bash把*解析了,希望到yum源中去解析而不是在bash中解析。到底使用yum search还是yum list就要看个人习惯了

1.5.2 安装与卸载软件包

安装软件包用“yum install 包名”命令,现在安装 lrzsz

[root@node1 ~]# yum -y install lrzsz
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 lrzsz.x86_64.0.0.12.20-36.el7 将被 升级
---> 软件包 lrzsz.x86_64.0.0.12.20-43.el8 将被 更新
--> 解决依赖关系完成

依赖关系解决

.....输出信息.....

更新完毕:
  lrzsz.x86_64 0:0.12.20-43.el8                                              

完毕!
[root@node1 ~]#

这里已显示“已安装”

不管是安装还是卸载,每次安装(或卸载)时都会询问,如果不想被询问,可以加上y选项,y加在下面1、2、3的位置都可以

 yum 1 install 2 包名 3

卸载软件包用“yum remove 包名”命令,现在把 Irzsz卸载掉

[root@node1 ~]# yum -y remove lrzsz
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 lrzsz.x86_64.0.0.12.20-43.el8 将被 删除
--> 解决依赖关系完成

依赖关系解决

=============================================================================
 Package        架构            版本                      源            大小
=============================================================================
正在删除:
 lrzsz          x86_64          0.12.20-43.el8            @bb          187 k

事务概要
=============================================================================
移除  1 软件包

安装大小:187 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : lrzsz-0.12.20-43.el8.x86_64                              1/1 
  验证中      : lrzsz-0.12.20-43.el8.x86_64                              1/1 

删除:
  lrzsz.x86_64 0:0.12.20-43.el8                                              

完毕!
[root@node1 ~]#

这样就把lrzsz卸载了。下面查看系统中是否还有Irzsz

[root@node1 ~]# rpm -qa | grep lezsz
[root@node1 ~]# 

如果要更新系统中的某个软件包,则用“yum update包名y”命令。如果要更新系统中所有的软件包,则直接使用yum udpate -y命令即可

查询包的信息用“yum info包名”命令

[root@node1 ~]# yum info lrzsz
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.aliyun.com
可安装的软件包
名称    :lrzsz
架构    :x86_64
版本    :0.12.20
发布    :43.el8
大小    :84 k
源    :bb
简介    : The lrz and lsz modem communications programs
网址    :http://www.ohse.de/uwe/software/lrzsz.html
协议    : GPLv2+
描述    : Lrzsz (consisting of lrz and lsz) is a cosmetically modified
         : zmodem/ymodem/xmodem package built from the public-domain version
         : of the rzsz package. Lrzsz was created to provide a working GNU
         : copylefted Zmodem solution for Linux systems.

[root@node1 ~]#

1.5.3? 下载

使用yum 安装软件包时,先把要安装的软件包及所依赖的包都下载到本地缓存中,然后再一起安装。如果只想把这些包下载下来并不安装,可以使用--downloadonly和-- downloaddir=/dir选项,其中--downloadonly 只让yum把软件包下载下来并不执行安装操作,下载到哪个目录由--downloaddir来指定

现在想把 httpd及其依赖的包全部下载到/bb目录,首先创建/bb目录

[root@node1 ~]# mkdir /bb
[root@node1 ~]#

然后开始下载指定的包

[root@node1 ~]# yum -y install httpd --downloadonly --downloaddir=/bb
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.37-41.module+el8.5.0+11772+c8e0c271 将被 安装

.............

查看一下/bb中的内容

1 [root@node1 ~]# ls /bb/
2 apr‐1.6.3‐12.el8.x86_64.rpm httpd‐filesystem‐2.4.37‐
41.module+el8.5.0+11772+c8e0c271.noarch.rpm
3 apr‐util‐1.6.1‐6.el8.x86_64.rpm httpd‐tools‐2.4.37‐41.module+el8.5.0+1
1772+c8e0c271.x86_64.rpm
4 apr‐util‐bdb‐1.6.1‐6.el8.x86_64.rpm mod_http2‐1.15.7‐
3.module+el8.4.0+8625+d397f3da.x86_64.rpm
5 apr‐util‐openssl‐1.6.1‐6.el8.x86_64.rpm redhat‐logos‐httpd‐84.5‐
1.el8.noarch.rpm
6 httpd‐2.4.37‐41.module+el8.5.0+11772+c8e0c271.x86_64.rpm
7 [root@node1 ~]#

可以看到,已经把httpd及其依赖的包全部下载下来了?

文章来源:https://blog.csdn.net/m0_73823239/article/details/134923494
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。