YUM配置
目录
前言
一、YUM 配置完整流程
1. 了解 YUM 配置文件结构
2. 基础 YUM 仓库配置(官方 / 国内源)
步骤 1:备份默认官方仓库(可选但推荐)
步骤 2:下载国内镜像源的 .repo 文件
步骤 3:清理并生成 YUM 缓存
步骤 4:测试 YUM 配置
3. 自定义 YUM 仓库(本地 RPM 包)
步骤 1:安装 createrepo 工具
步骤 2:创建仓库目录并放入 RPM 包
步骤 3:初始化仓库元数据
步骤 4:创建自定义 .repo 文件
步骤 5:刷新缓存并测试
二、永久挂载完整流程
1. 前提:了解挂载的核心概念
2. 永久挂载通用流程(本地源必须要挂载,网络源则不需要)
步骤 1:查看待挂载设备的信息(UUID、文件系统)
步骤 2:创建挂载点目录(必须为空目录)
步骤 3:临时挂载测试(可选但推荐)
步骤 4:写入 /etc/fstab 实现永久挂载
4.1 编辑 /etc/fstab 文件
4.2 新增挂载配置行
编辑
4.3 关键参数说明
步骤 5:验证 /etc/fstab 配置(关键!)
步骤 6:测试开机自动挂载(可选)
3. 特殊场景:永久挂载 NFS 共享(网络存储)
步骤 1:客户端安装 NFS 工具
步骤 2:查看 NFS 服务器的共享目录
步骤 3:创建挂载点并写入 /etc/fstab
步骤 4:验证挂载
三、常见问题排查
四.总结
前言
在 Linux 系统中,YUM(Yellowdog Updater, Modified) 是基于 RPM 包的包管理工具,用于自动下载、安装、升级软件包;而 永久挂载 则是通过配置文件让存储设备(如磁盘分区、U 盘、NFS 共享等)在系统开机时自动挂载到指定目录,避免每次手动挂载。以下是两者的完整配置流程,以 CentOS/RHEL 系统为例(其他 RPM 系系统如 Fedora 流程类似)。
一、YUM 配置完整流程
YUM 的核心是 YUM 仓库(Repository),系统通过读取仓库配置文件(.repo
)来获取软件包的下载地址、依赖关系等信息。配置流程分为「基础仓库配置」「自定义仓库配置」「YUM 缓存清理与测试」三部分。
1. 了解 YUM 配置文件结构
YUM 的配置文件分为两类,需明确其作用和路径:
配置类型 | 路径 | 作用说明 |
---|---|---|
主配置文件 | /etc/yum.conf | 全局配置(如缓存目录、日志路径、默认仓库优先级等),一般无需修改默认值。 |
仓库配置文件 | /etc/yum.repos.d/ | 所有 .repo 后缀的文件均为仓库配置,系统会自动加载该目录下的所有仓库。 |
YUM 缓存目录 | /var/cache/yum/$basearch/$releasever | 存储下载的 RPM 包和元数据,可通过 yum clean 清理。 |
YUM 日志文件 | /var/log/yum.log | 记录 YUM 操作(安装、升级、删除)的日志,用于问题排查。 |
2. 基础 YUM 仓库配置(官方 / 国内源)
默认情况下,系统可能自带官方仓库,但官方源在国内访问速度较慢,建议替换为 国内镜像源(如阿里云、网易云、华为云),步骤如下:
步骤 1:备份默认官方仓库(可选但推荐)
避免后续需要恢复默认配置,先备份原有 .repo
文件:
# 进入仓库配置目录
cd /etc/yum.repos.d/
# 创建备份目录并移动默认 repo 文件
mkdir backup && mv *.repo backup/
步骤 2:下载国内镜像源的 .repo
文件
以 阿里云 CentOS 7 源 为例(其他版本需对应调整,如 CentOS 8 需用 CentOS 8 镜像源):
# 下载阿里云 CentOS 7 基础源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# (可选)下载阿里云 EPEL 源(提供官方源没有的额外软件包,如 nginx、nodejs 等)
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
步骤 3:清理并生成 YUM 缓存
缓存用于存储仓库元数据(软件包列表、依赖关系),避免每次查询都访问网络:
# 清理旧缓存(包括元数据和下载的 RPM 包)
yum clean all
# 生成新缓存(加载新 repo 文件的元数据)
yum makecache
步骤 4:测试 YUM 配置
通过安装一个简单软件(如 tree
)验证仓库是否可用:
yum install -y tree
若能正常下载并安装,说明 YUM 配置成功。
3. 自定义 YUM 仓库(本地 RPM 包)
若需将本地收集的 RPM 包制作成 YUM 仓库(如无网络环境使用),需借助 createrepo
工具,步骤如下:
步骤 1:安装 createrepo
工具
yum install -y createrepo
步骤 2:创建仓库目录并放入 RPM 包
# 创建仓库根目录(示例路径:/data/local_repo)
mkdir -p /data/local_repo
# 将所有 RPM 包复制到该目录(可通过 cp 或 scp 复制)
cp /path/to/your/rpms/* /data/local_repo/
步骤 3:初始化仓库元数据
createrepo /data/local_repo/
执行后会在 /data/local_repo/
下生成 repodata
目录,包含仓库元数据文件。
步骤 4:创建自定义 .repo
文件
vim /etc/yum.repos.d/local.repo
写入以下内容([local]
为仓库 ID,需唯一):
[local]
name=Local YUM Repository # 仓库名称(自定义)
baseurl=file:///mnt/cdrom # 仓库路径(本地路径用 file:// 开头)
enabled=1 # 是否启用该仓库(1=启用,0=禁用)
gpgcheck=0 # 是否校验 GPG 签名(0=禁用,本地仓库一般关闭)
步骤 5:刷新缓存并测试
# 清理旧缓存
yum clean all
# 生成新缓存
yum makecache
# 测试:安装本地仓库中的 RPM 包(如示例包名:xxx.rpm)
yum install -y xxx
二、永久挂载完整流程
永久挂载的核心是修改 /etc/fstab
文件(系统开机时自动读取该文件的挂载配置),需先明确 挂载设备的标识(UUID 或设备路径) 和 挂载点目录,流程如下:
1. 前提:了解挂载的核心概念
- 挂载点:Linux 中所有存储设备都需挂载到一个 空目录 才能访问(如
/mnt/data
),该目录即为挂载点。 - 设备标识:推荐使用 UUID(通用唯一识别码) 而非设备路径(如
/dev/sdb1
),因为设备路径可能因磁盘顺序变化而改变(如插入新磁盘后/dev/sdb1
变为/dev/sdc1
),而 UUID 永久唯一。 - 文件系统类型:需明确设备的文件系统(如
ext4
、xfs
、ntfs
、nfs
等),可通过blkid
或lsblk -f
查看。
2. 永久挂载通用流程(本地源必须要挂载,网络源则不需要)
步骤 1:查看待挂载设备的信息(UUID、文件系统)
使用 blkid
命令查看所有存储设备的详细信息:
blkid
输出示例(重点关注 UUID
和 TYPE
):
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="b90fd559-a717-4311-8644-5c19237eca0c" TYPE="xfs"
/dev/sda2: UUID="ea506468-8e1f-4896-91f8-4ee000733f92" TYPE="swap"
/dev/sda3: UUID="94fbe317-5f31-4d06-9541-44551faf9157" TYPE="xfs"
记录待挂载设备的 UUID(UUID="2020-11-04-11-36-43-00")和 文件系统类型(如 xfs
)。
步骤 2:创建挂载点目录(必须为空目录)
# 示例:创建 /mnt/data 作为挂载点
mkdir -p /mnt/data
# 验证目录是否为空(若有内容需先备份删除)
ls -la /mnt/data
步骤 3:临时挂载测试(可选但推荐)
在写入 /etc/fstab
前,先手动临时挂载,验证设备和挂载点是否正常(避免开机挂载失败导致系统无法启动):
# 格式:mount -t 文件系统类型 设备UUID/路径 挂载点
mount -t ext4 /dev/cdrom /mnt/data
- 验证挂载是否成功:
# 查看已挂载的设备 df -h # 或查看指定挂载点 ls /mnt/data # 若能看到设备内的文件,说明挂载正常
步骤 4:写入 /etc/fstab
实现永久挂载
/etc/fstab
文件每一行对应一个挂载配置,格式为:
UUID=设备UUID 挂载点 文件系统类型 挂载参数 备份标识 自检顺序
4.1 编辑 /etc/fstab
文件
vim /etc/fstab
4.2 新增挂载配置行
根据步骤 1 记录的信息,添加如下内容(示例):
# 格式说明:UUID=xxx 挂载点 文件系统 挂载参数 备份 自检
UUID=e3a9f2d1-xxxx-xxxx-xxxx-xxxxxxxxx /mnt/data ext4 defaults 0 0
4.3 关键参数说明
参数位置 | 参数值 | 说明 |
---|---|---|
1 | UUID=xxx | 待挂载设备的 UUID(也可写设备路径如 /dev/sdb1 ,但推荐 UUID) |
2 | /mnt/cdrom | 挂载点目录(必须已创建且为空) |
3 | xfs | 文件系统类型(如 swap、ntfs-3g (需安装 ntfs-3g 工具)、nfs ) |
4 | defaults | 挂载参数(defaults 包含 rw, suid, dev, exec, auto, nouser, async) |
5 | 0 | 是否备份(0 = 不备份,1 = 每日备份,2 = 不定期备份,一般设 0) |
6 | 0 | 开机自检顺序(0 = 不自检,1 = 先自检(如根分区),2 = 后自检,一般设 0) |
步骤 5:验证 /etc/fstab
配置(关键!)
必须验证配置是否正确,否则可能导致系统开机卡死(因挂载失败)。验证方法:
# 重新加载 /etc/fstab 配置,并挂载所有未挂载的设备
mount -a
- 若执行后无报错,说明配置正确;
- 若报错(如
bad superblock
、invalid argument
),需立即检查/etc/fstab
的 UUID、文件系统类型是否正确,修正后再次执行mount -a
。
步骤 6:测试开机自动挂载(可选)
若需确认开机后是否自动挂载,可重启系统后验证:
# 重启系统
reboot
# 重启后查看挂载状态
df -h | grep /mnt/data
若能看到 /mnt/data
的挂载信息,说明永久挂载成功。
3. 特殊场景:永久挂载 NFS 共享(网络存储)
若需挂载远程 NFS 服务器的共享目录,流程类似,但文件系统类型为 nfs
,步骤如下:
步骤 1:客户端安装 NFS 工具
yum install -y nfs-utils
步骤 2:查看 NFS 服务器的共享目录
假设 NFS 服务器 IP 为 192.168.1.100
,查看其共享:
showmount -e 192.168.1.100
输出示例(共享目录为 /data/nfs_share
):
Export list for 192.168.1.100:
/data/nfs_share *
步骤 3:创建挂载点并写入 /etc/fstab
# 创建挂载点
mkdir -p /mnt/nfs_share
# 编辑 /etc/fstab,添加 NFS 挂载配置
vi /etc/fstab
写入内容(NFS 挂载参数需匹配服务器配置):
# 格式:NFS服务器IP:共享目录 本地挂载点 nfs 挂载参数 0 0
192.168.1.100:/data/nfs_share /mnt/nfs_share nfs defaults,_netdev 0 0
_netdev
:表示该挂载依赖网络,需等网络启动后再挂载(避免开机时网络未就绪导致挂载失败)。
步骤 4:验证挂载
mount -a
# 查看挂载状态
df -h | grep /mnt/nfs_share
三、常见问题排查
-
YUM 报错「Could not retrieve mirrorlist」
- 原因:网络不通、
repo
文件路径错误或镜像源失效。 - 解决:检查网络(
ping mirrors.aliyun.com
)、重新下载repo
文件、确认系统版本与repo
版本匹配(如 CentOS 7 不能用 CentOS 8 的repo
)。
- 原因:网络不通、
-
mount -a
报错「mount: /mnt/data: can't find in /etc/fstab.」- 原因:
/etc/fstab
格式错误(如空格缺失、UUID 错误)。 - 解决:检查
fstab
每一行的 6 个参数是否完整,UUID 是否与blkid
输出一致。
- 原因:
-
系统开机卡在「Mounting /mnt/data...」
- 原因:
fstab
中设备 UUID 错误、文件系统类型不匹配或设备未连接。 - 解决:开机时按
e
进入 grub 编辑模式,在linux16
行末尾添加init=/bin/bash
,进入单用户模式后修正fstab
文件。
- 原因:
四.总结
- 块设备特性限制:光盘、ISO 等是 “按块存储数据的设备”,系统默认仅识别 “设备存在”,但无法解析其内部文件(如光盘的 ISO9660 文件系统);
- 挂载的作用:通过
mount
命令将块设备与系统中的 “空目录(挂载点)” 关联,访问挂载点就等同于访问块设备内部文件(例如将/dev/cdrom
挂载到/mnt/cdrom
,访问/mnt/cdrom
即可查看光盘文件); - YUM 配置依赖:本地介质源的
.repo
配置文件(如/etc/yum.repos.d/local.repo
)中,baseurl
需指定 “挂载点路径”(如file:///mnt/cdrom
),未挂载则该路径为空,YUM 会因找不到索引文件而失效。