RHEL/CentOS 离线部署指南:配置本地 ISO 镜像作为 YUM 仓库

引言

在 Linux 系统管理工作中,有时我们需要在没有网络连接的环境中安装软件包,或者希望使用特定的 ISO 镜像作为软件源。本文将详细介绍如何在 RHEL(Red Hat Enterprise Linux)或 CentOS 系统中,将本地 ISO 镜像配置为 YUM 仓库,实现离线软件包安装。

通过本文的步骤,您可以:

  1. 创建正确的 YUM 仓库配置文件
  2. 挂载 ISO 镜像到指定目录
  3. 配置本地仓库并验证可用性
  4. 解决常见的配置问题

这种方法特别适用于:

  • 离线环境下的系统部署
  • 需要重复安装相同软件包的环境
  • 测试特定版本软件包的场景

1. 创建配置文件Linux/CentOS 中配置本地 ISO 镜像作为 YUM 仓库

sudo vi /etc/yum.repos.d/iso.repo

配置内容详解:

复制代码
[iso_base]                    # 仓库ID,用于唯一标识这个仓库
name=iso_base                # 仓库显示名称,在 yum repolist 中显示
baseurl=file:///mnt/BaseOS/  # 仓库路径,file:// 表示本地文件系统路径
gpgcheck=0                   # GPG签名检查,0=禁用,1=启用(需要配置gpgkey)
enabled=1                    # 仓库启用状态,1=启用,0=禁用

[iso_app]                     # 第二个仓库的ID
name=iso_app                 # 第二个仓库的显示名称
baseurl=file:///mnt/AppStream/ # AppStream 仓库路径
gpgcheck=0                   # 同样禁用GPG检查
enabled=1                    # 启用该仓库

关键参数解释:

  • baseurl : 指定仓库的路径。file:// 协议表示本地文件系统,后面跟的是 ISO 镜像挂载后的实际路径。
  • gpgcheck: 设置为 0 表示不检查软件包的 GPG 签名。在生产环境中,建议配置正确的 GPG 密钥并设置为 1 以确保软件包完整性。
  • enabled: 设置为 1 表示该仓库可用,yum 会从这个仓库搜索和安装软件包。

RHEL/CentOS 8 及以后的版本通常包含两个主要仓库:

  1. BaseOS: 包含操作系统核心组件和基础软件包
  2. AppStream: 包含应用程序、运行时环境和其他工具

2. 挂载 ISO 镜像

复制代码
mkdir -p /mnt
mount -o loop /path/to/rhel.iso /mnt
# 确认 /mnt/BaseOS 和 /mnt/AppStream 存在
ls -l /mnt/

3. 清理缓存并验证

复制代码
yum clean all
yum repolist

4. 测试安装

复制代码
sudo yum install -y <任意包名>

5. 常见问题排查

下表列出了配置本地 ISO 镜像作为 YUM 仓库时可能遇到的常见问题及其解决方法:

问题现象 可能原因 解决方法
yum repolist 看不到仓库 配置文件后缀不是 .repo 将配置文件重命名为以 .repo 结尾
baseurl 找不到路径 挂载点不存在或路径写错 使用 ls /mnt/BaseOS 检查目录是否存在
yum install 报错 gpgcheck=1 但未配置 GPG 密钥 临时设为 gpgcheck=0,或配置正确的 gpgkey
仓库 ID 冲突 与其他仓库重名 修改 [仓库ID] 为唯一值
相关推荐
未济21 小时前
linux 配置环境变量
linux
傲世仙尊21 小时前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫21 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
_艾伦 耶格尔.1 天前
进程间通信
linux
AI职业加油站1 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
Liuqy-051 天前
Linux IO编程——静态库、动态库
linux
此冬歌咏1 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
彧azz1 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅1 天前
linux(8) 软硬链接
linux·运维·服务器
AIgorithmGEEK1 天前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid