在CentOS系统的管理和维护中,软件包的安装与更新是日常操作的核心,我们会依赖于网络上的官方或第三方YUM源,在某些特定场景下,如网络隔离的环境、内网服务器集群、或需要快速批量部署时,配置一个本地化的软件源就显得尤为重要,使用CentOS的安装光盘(CD/DVD)或其ISO镜像文件作为本地源,是一种最直接、最可靠的离线解决方案,本文将详细介绍如何配置和使用CentOS本地CD源。
准备工作
在开始配置之前,您需要准备以下两样东西:
- CentOS安装介质:这可以是物理的CentOS安装DVD光盘,也可以是从官方渠道下载的、与您系统版本和架构(如x86_64)完全一致的ISO镜像文件。
- 系统权限:您需要拥有root权限或通过
sudo
执行命令的权限,因为挂载设备和修改系统配置文件都需要管理员权限。
挂载光盘或镜像文件
配置本地源的第一步是将安装介质的内容“呈现”给系统,这个过程称为“挂载”。
创建一个用于挂载的目录,通常习惯使用/mnt/cdrom
:
mkdir /mnt/cdrom
根据您介质的类型,选择以下一种方式进行挂载:
挂载物理光盘:
将CentOS安装光盘放入服务器的光驱中,然后执行以下命令:
mount /dev/cdrom /mnt/cdrom
挂载ISO镜像文件:
如果您下载的是ISO文件,无需刻录,可以直接使用-o loop
选项将其挂载到指定目录,假设您的ISO文件存放在/home/centos.iso
:
mount -o loop /home/centos.iso /mnt/cdrom
挂载成功后,您可以通过ls /mnt/cdrom
命令查看目录内容,应该能看到Packages
、repodata
等文件夹,这证明介质已成功挂载。
配置YUM仓库文件
YUM(或DNF,在CentOS 8及以后版本)通过读取/etc/yum.repos.d/
目录下的.repo
文件来获取软件源信息,为了不影响系统默认的网络源,最佳实践是创建一个新的仓库文件专门用于本地源。
使用文本编辑器(如vi
或nano
)在该目录下创建一个新文件,例如local-cdrom.repo
:
vi /etc/yum.repos.d/local-cdrom.repo
在文件中输入以下内容:
[local-cdrom] name=CentOS Local CD-ROM Repository baseurl=file:///mnt/cdrom gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
下表详细解释了这些参数的含义:
参数 | 含义 |
---|---|
[local-cdrom] | 仓库的唯一标识符,用于区分不同的源。 |
name | 仓库的描述性名称,会显示在YUM命令的输出中。 |
baseurl | 仓库的地址。file:/// 表示这是一个本地文件路径,指向我们挂载的目录。 |
gpgcheck | 是否进行GPG签名校验,设置为1 可以确保软件包的完整性和来源可信。 |
enabled | 是否启用此仓库。1 表示启用,0 表示禁用。 |
gpgkey | GPG公钥文件的路径,用于校验软件包签名,此路径通常在系统中已存在。 |
注意:gpgkey
路径中的版本号(如CentOS-7
)需要与您的系统版本相匹配。
验证与使用
配置完成后,需要清理YUM缓存并重新加载仓库信息。
执行以下命令清理所有缓存:
yum clean all
列出所有可用的仓库,检查我们的本地源是否已成功加载:
yum repolist
在输出的列表中,您应该能看到名为local-cdrom
的仓库,以及其包含的软件包数量,如果看到相关信息,说明配置成功,您就可以像使用网络源一样,通过yum install <package_name>
命令来安装软件了,系统会优先从本地CD源中获取。
实现开机自动挂载
上述挂载操作在系统重启后会失效,为了使本地源永久可用,需要将挂载信息写入/etc/fstab
文件。
编辑/etc/fstab
文件,在末尾添加一行,对于ISO文件,添加如下内容:
/home/centos.iso /mnt/cdrom iso9660 defaults,loop 0 0
对于物理光盘,则添加:
/dev/cdrom /mnt/cdrom iso9660 defaults 0 0
保存后,系统每次启动时都会自动执行挂载操作,确保本地源始终可用。
相关问答FAQs
Q1:我已经按照步骤配置了,但执行 yum repolist
后,本地源显示的软件包数量是0,这是为什么?
A1:这是一个常见问题,通常由以下几个原因造成:
- 挂载失败:请首先确认光盘或ISO文件是否已成功挂载到
/mnt/cdrom
,使用df -h
或ls /mnt/cdrom
命令检查。 :请检查 .repo
文件中的baseurl
路径是否与实际的挂载点完全一致,注意是file:///
(三个斜杠)。- 问题:确保您使用的ISO是完整的安装镜像,而不是LiveCD或最小化启动镜像,因为后者可能不包含完整的软件包仓库。
- 仓库未启用:检查
.repo
文件中的enabled=1
是否设置正确。
Q2:我可以用U盘来代替CD/DVD作为本地源吗?
A2:完全可以,使用U盘作为本地源与使用光盘或ISO文件的原理是相同的,您只需要将U盘插入服务器,找到其设备名(如/dev/sdb1
),然后将其挂载到指定目录(例如/mnt/usb
),接着在.repo
文件中将baseurl
修改为file:///mnt/usb
即可,后续步骤与配置CD源完全一样。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复