光盘安装软件需确保设备识别、正确挂载、.repo配置精准及缓存重建:先用ls /dev/cdrom或ls /dev/sr*确认光驱存在,mount | grep cdrom验证挂载;挂载点推荐/mnt/cdrom且必须存在;/etc/fstab中写入/dev/sr0 /mnt/cdrom iso9660 ro,noauto,users,unhide 0 0;baseurl=file:///mnt/cdrom/需严格匹配路径,enabled=1不可遗漏,gpgcheck=0避免签名验证失败;最后root权限执行yum clean all && yum makecache,并用yum repolist enabled和yum list available验证。

能用光盘直接装软件,就别折腾网络源——只要光盘镜像挂得对、.repo写得准、缓存重建成功,yum install 就能秒装,不卡、不报错、不依赖外网。
怎么确认光盘设备和挂载点是否可用
别急着写配置,先看系统认没认到光盘。常见错误是虚拟机没连 ISO 或物理机没插盘,ls /dev/cdrom 返回 “No such file” 就白忙活。
-
ls /dev/cdrom—— 通常软链接到/dev/sr0;如果不存在,试试ls /dev/sr* -
mount | grep cdrom或df -h | grep sr0—— 看是否已挂载,避免重复挂载报错 “device busy” - 挂载目录必须存在且为空(或至少可写),推荐用
/mnt/cdrom或/media/cdrom,别用/opt/mount这类非常规路径,容易被 SELinux 拦住
挂载命令和开机自动挂载的关键点
临时挂载很简单,但重启后失效;想一劳永逸就得写进 /etc/fstab,否则每次都要手动 mount。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 临时挂载:
mount /dev/sr0 /mnt/cdrom(注意不是/dev/cdrom,有些系统该路径不存在) - 开机自动挂载:在
/etc/fstab末尾加一行/dev/sr0 /mnt/cdrom iso9660 ro,noauto,users,unhide 0 0—— 关键是noauto(避免开机卡住)和ro(光盘只读,否则yum会报错) - 验证 fstab:运行
mount -a,无输出即成功;有报错就检查设备路径、目录权限或文件系统类型(必须是iso9660)
.repo 文件里哪些参数不能错
写错 baseurl 或漏掉 enabled=1 是最常见失败原因;gpgcheck=0 不是偷懒,而是光盘里的 GPG key 路径常不匹配默认值。
-
baseurl必须以file://开头,且路径要和实际挂载点完全一致,比如挂到/mnt/cdrom,就得写baseurl=file:///mnt/cdrom/(三个斜杠,结尾带斜杠) -
enabled=1缺失或写成enableb=1(拼写错误)会导致源被忽略,yum repolist里根本看不到它 -
gpgcheck=0推荐设为 0 —— 光盘镜像自带的RPM-GPG-KEY-CentOS-7往往不在默认路径,硬开gpgcheck=1又不配gpgkey,yum直接拒绝工作 - 仓库 ID(方括号里的名字,如
[c7-media])不能含下划线以外的特殊字符,空格、点号、短横都会导致解析失败
缓存清理和验证时容易忽略的细节
yum clean all 和 yum makecache 看似简单,但顺序错、权限错、SELinux 开着都可能让缓存建不起来。
- 必须用 root 执行,普通用户跑
yum clean all会提示 “Error: Failed to lock …” - 执行
yum makecache后,留意终端最后是否出现 “Metadata Cache Created”,而不是卡在 “Determining fastest mirrors” —— 卡住说明baseurl不可达或目录无读取权限 - 验证命令用
yum repolist enabled,不是yum repolist(后者会列出所有源,包括被 disable 的,误导判断) - 如果
yum list available | head -5能刷出包名,才算真正生效;只靠yum repolist显示 “0 packages” 仍可能失败
真正麻烦的不是步骤多,而是挂载点路径、.repo 里那几个斜杠和等号的位置、以及 SELinux 对 file:// 协议的默认限制——这些地方错一个字符,yum 就静默失败,不报具体错误。










