- 前言
- 配置
- 总结
前言
在很早之前我曾写过一篇名为《基于 CentOS 7.6 配置本地 YUM 源》的博客,文章里面详细的介绍了如何利用 ISO 镜像来配置本地 yum 源完成软件包的安装。
最近,我开始接触 CentOS8 和 RHEL8 版本的系统,突然发现按照原来在 CentOS7 版本中的配置,我的本地 yum 源是无法使用的,并且会出现如下错误:
按照 Couldn't open file /mnt/cdrom/repodata/repomd.xml 的错误提示,很显然问题就出在镜像上。这里说明下,我是把系统的 ISO 镜像给挂载到 /mnt/cdrom 目录下的,然后我就对比了 CentOS8 和 CentOS7 挂载之后区别,发现果然别有洞天:
根据上面的图不难发现,在 CentOS8 的环境里,镜像被挂载以后,挂载点的目录下压根儿就没有 repodata 目录,自然会报错;而在 CentOS7 的环境里,镜像被挂载以后,挂载点的目录下是有这个目录的。
这是因为 CentOS8 和 RHEL8 的镜像都提供了两个存储库,分别是 BaseOS 和 AppStream,当我们在修改本地 yum 源的配置文件时,只需要将 baseurl 的路径指定到 BaseOS 和 AppStream 子目录即可。
下面,我们就来具体说一下在 CentOS8 环境中该如何配置本地 yum 源,RHEL8 的操作与之一样。
配置
Step1:上传镜像并创建镜像挂载点。
[root@docker-learn ~]# mkdir /iso //镜像存放目录。 [root@docker-learn ~]# mkdir /mnt/cdrom //创建镜像挂载点。 [root@docker-learn ~]# ls -lh /iso/ total 8.7G -rw-r--r--. 1 root root 8.7G May 6 17:26 CentOS-8.3.2011-x86_64-dvd1.iso
Step2:挂载镜像(如果需要永久挂载,将挂载条目写入 /etc/fstab 文件即可)。
[root@docker-learn ~]# mount -o loop /iso/CentOS-8.3.2011-x86_64-dvd1.iso /mnt/cdrom/
Step3:备份系统自带的 repo 配置文件。
[root@docker-learn ~]# mkdir /etc/yum.repos.d/repo-bak [root@docker-learn ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo-bak/
Step4:配置本地 yum 源的 repo 文件。
[root@docker-learn ~]# vim /etc/yum.repos.d/local.repo //配置信息如下所示。 [local-baseos] name=local-baseos baseurl=file:///mnt/cdrom/BaseOS enabled=1 gpgcheck=0 [local-appstream] name=local-appstream baseurl=file:///mnt/cdrom/AppStream enabled=1 gpgcheck=0
Step5:清除并重新缓存存储库的元数据。
[root@docker-learn ~]# yum clean all [root@docker-learn ~]# yum makecache [root@docker-learn ~]# yum repolist
至此,本地 yum 源就配置成功了,可以直接使用本地 yum 源进行软件包安装啦 ~~
总结
个人感觉 8 版本相对于 7 版本的体验还是有较大差异的。
单纯说 8 版本的镜像都要比 7 版本的大上两倍。像 8 之前版本里使用的 network.service 服务默认在 8 版本里面也不能直接使用了;其实,就拿本篇博客所说的 yum 工具,在 8 版本里面应该叫 dnf 工具(emmm,是不是要开两把地下城了 ~~)更为合适,我们可以看下 yum 的 man 手册,第一条就是:
yum - redirecting to DNF Command Reference
也就是说在 8 版本里面我们应该使用 dnf 命令,只是它兼容了原来的 yum 命令,举个例子看一下:
[root@docker-learn ~]# dnf search tigervnc --showduplicates [root@docker-learn ~]# dnf install tigervnc
看起来似乎和之前的用法大差不差;不过我还是有一种被技术更新迭代迅猛所支配的恐惧感,得抓紧时间好好学习一啦。
以上,如有不妥之处,欢迎指正。



