当前位置: 首页 > news >正文

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 永久唯一。
  • 文件系统类型:需明确设备的文件系统(如 ext4xfsntfsnfs 等),可通过 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 关键参数说明
参数位置参数值说明
1UUID=xxx待挂载设备的 UUID(也可写设备路径如 /dev/sdb1,但推荐 UUID)
2/mnt/cdrom挂载点目录(必须已创建且为空)
3xfs文件系统类型(如 swapntfs-3g(需安装 ntfs-3g 工具)、nfs
4defaults挂载参数(defaults 包含 rw, suid, dev, exec, auto, nouser, async)
50是否备份(0 = 不备份,1 = 每日备份,2 = 不定期备份,一般设 0)
60开机自检顺序(0 = 不自检,1 = 先自检(如根分区),2 = 后自检,一般设 0)
步骤 5:验证 /etc/fstab 配置(关键!)

必须验证配置是否正确,否则可能导致系统开机卡死(因挂载失败)。验证方法:

# 重新加载 /etc/fstab 配置,并挂载所有未挂载的设备
mount -a
  • 若执行后无报错,说明配置正确;
  • 若报错(如 bad superblockinvalid 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

三、常见问题排查

  1. YUM 报错「Could not retrieve mirrorlist」

    • 原因:网络不通、repo 文件路径错误或镜像源失效。
    • 解决:检查网络(ping mirrors.aliyun.com)、重新下载 repo 文件、确认系统版本与 repo 版本匹配(如 CentOS 7 不能用 CentOS 8 的 repo)。
  2. mount -a 报错「mount: /mnt/data: can't find in /etc/fstab.」

    • 原因:/etc/fstab 格式错误(如空格缺失、UUID 错误)。
    • 解决:检查 fstab 每一行的 6 个参数是否完整,UUID 是否与 blkid 输出一致。
  3. 系统开机卡在「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 会因找不到索引文件而失效。

http://www.dtcms.com/a/351302.html

相关文章:

  • 适配欧拉操作系统
  • 高频面试题:说一下线程池吧?(线程池原理,核心参数,创建方式,应用场景都要说到才能让面试官心服口服)
  • 什么是AQS?
  • Xposed框架实战指南:从原理到你的第一个模块
  • R语言使用随机森林对数据进行插补
  • 【Java基础】Java数据结构深度解析:Array、ArrayList与LinkedList的对比与实践
  • 【HarmonyOS NEXT】打包鸿蒙应用并发布到应用市场
  • 构建生产级 RAG 系统:从数据处理到智能体(Agent)的全流程深度解析
  • Linux 网络数据收发全栈工具书:从 nc、socat 到 iperf3 的 Buildroot 路径与跨平台实战
  • 开心实习之第三十二天
  • Python爬虫实战:Uiautomator2 详解与应用场景
  • Android SystemServer 系列专题【篇四:SystemServerInitThreadPool线程池管理】
  • android 事件分发源码分析
  • STL库——vector(类函数学习)
  • 【51单片机】萌新持续学习中《矩阵 密码锁 点阵屏》
  • 矩阵初等变换的几何含义
  • 血缘元数据采集开放标准:OpenLineage Integrations Apache Spark Configuration Usage
  • 重写BeanFactory初始化方法并行加载Bean
  • 信息网络安全视角下的在线问卷调查系统设计与实践(国内问卷调查)
  • 记一个Mudbus TCP 帮助类
  • Linux 内核 Workqueue 原理与实现及其在 KFD SVM功能的应用
  • LeetCode - 844. 比较含退格的字符串
  • LeetCode 438. 找到字符串中所有的字母异位词
  • 微算法科技(NASDAQ:MLGO)通过修改 Grover 算法在可重构硬件上实现动态多模式搜索
  • LeetCode - 946. 验证栈序列
  • 智慧园区:从技术赋能到价值重构,解锁园区运营新范式
  • 透视光合组织大会:算力生态重构金融AI落地新实践
  • 亚马逊类目合规风暴:高压清洗机品类整顿背后的运营重构与风险防御
  • 便携屏选购指南:常见作用、移动性优势及多场景应用详解
  • 前端性能优化新维度:渲染流水线深度解析