news 2026/4/24 6:52:46

Rocky9离线环境下的yum源构建实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Rocky9离线环境下的yum源构建实战

1. 离线环境下的yum源构建背景

在企业的生产环境或者某些特殊场景中,服务器往往处于完全隔离的网络环境。这种情况下,常规的在线软件安装方式就会遇到困难。Rocky Linux 9作为RHEL的替代品,继承了其稳定性和安全性,但在离线环境下如何管理软件包就成了一个现实问题。

我遇到过不少这样的情况:新部署的服务器没有外网访问权限,但需要安装各种基础工具。这时候,本地yum源的构建就显得尤为重要。通过将ISO镜像中的软件包制作成本地仓库,我们就能在不联网的情况下使用yum命令安装软件,还能自动解决依赖关系。

2. 准备工作:获取和挂载ISO镜像

2.1 获取Rocky Linux 9 ISO镜像

首先需要准备Rocky Linux 9的安装镜像。可以从官网下载DVD版本,这个版本包含了BaseOS和AppStream两个主要仓库。建议下载最小安装镜像是不够的,因为它不包含完整的软件包集合。

下载完成后,可以通过多种方式将镜像传输到目标服务器:

  • 使用U盘物理拷贝
  • 通过内网文件共享服务
  • 如果是虚拟机环境,可以直接挂载ISO文件

2.2 挂载ISO镜像到本地目录

挂载前需要创建一个挂载点目录。我习惯使用/iso目录,这样比较直观:

mkdir -p /iso

然后就可以挂载ISO镜像了。根据你的环境不同,挂载方式也有所区别:

如果是物理服务器使用光盘:

mount /dev/cdrom /iso

如果是挂载ISO文件:

mount -o loop Rocky-9.1-x86_64-dvd.iso /iso

挂载完成后,可以通过ls命令查看内容:

ls /iso

你应该能看到AppStream和BaseOS这两个关键目录。这两个目录包含了所有需要的软件包和元数据。

3. 配置本地yum仓库

3.1 创建仓库配置文件

Rocky Linux的ISO中已经包含了一个仓库配置模板,我们可以直接复制并修改它:

cp /iso/media.repo /etc/yum.repos.d/local.repo

然后编辑这个文件,确保配置正确。我建议使用vim进行编辑:

vim /etc/yum.repos.d/local.repo

配置文件应该包含两个仓库的定义:

[Local-BaseOS] name=Rocky Linux 9 - BaseOS baseurl=file:///iso/BaseOS gpgcheck=0 enabled=1 [Local-AppStream] name=Rocky Linux 9 - AppStream baseurl=file:///iso/AppStream gpgcheck=0 enabled=1

这里有几个关键点需要注意:

  • baseurl指向的是我们挂载的ISO目录
  • gpgcheck设为0跳过了签名验证(生产环境建议开启)
  • enabled=1确保仓库被启用

3.2 清理原有仓库配置

为了避免冲突,建议清理系统原有的仓库配置:

rm -f /etc/yum.repos.d/*.repo

但要注意,如果你有其他本地仓库需要保留,就不要使用这个通配符删除,而是选择性删除。

4. 测试和使用本地仓库

4.1 更新yum缓存

配置完成后,需要让yum重新建立元数据缓存:

yum clean all yum makecache

这个过程中,yum会读取我们配置的本地仓库,并建立软件包索引。如果一切正常,你应该能看到它成功加载了两个仓库的元数据。

4.2 安装测试软件

为了验证仓库是否正常工作,我们可以尝试安装一些常用工具。比如安装vim:

yum install vim -y

如果安装过程没有报错,并且成功安装了vim及其依赖,说明我们的本地仓库配置正确。

4.3 查询软件包

你也可以通过搜索命令查看仓库中有哪些软件包:

yum list available

或者搜索特定软件:

yum search nginx

5. 常见问题排查

在实际操作中,可能会遇到各种问题。这里分享几个我遇到过的典型问题及解决方法。

5.1 挂载点权限问题

有时候挂载后访问/iso目录会提示权限不足。这是因为挂载的ISO文件系统可能有特殊的权限设置。解决方法:

chmod -R +r /iso

这条命令会给所有文件添加读权限。

5.2 仓库元数据损坏

如果yum makecache失败,可能是元数据损坏。可以尝试重新挂载ISO,或者手动删除缓存:

rm -rf /var/cache/yum yum makecache

5.3 软件包依赖问题

某些软件可能依赖的包不在ISO中。这种情况下,你有几个选择:

  1. 找更完整的ISO版本
  2. 手动下载缺失的rpm包并安装
  3. 搭建一个更完整的本地仓库

6. 进阶技巧:创建自定义仓库

如果ISO中的软件包不能满足需求,你可以创建自己的仓库,添加额外的软件包。

6.1 安装createrepo工具

首先需要安装创建仓库的工具:

yum install createrepo -y

6.2 准备软件包目录

创建一个目录存放你的软件包:

mkdir -p /opt/myrepo

把需要的rpm包都放到这个目录下。

6.3 生成仓库元数据

createrepo /opt/myrepo

6.4 添加新仓库配置

创建一个新的repo文件:

vim /etc/yum.repos.d/myrepo.repo

内容如下:

[myrepo] name=Custom Repository baseurl=file:///opt/myrepo gpgcheck=0 enabled=1

然后更新缓存:

yum makecache

现在你就可以安装自己添加的软件包了。

7. 性能优化建议

使用本地仓库虽然解决了离线问题,但在大型环境中可能会遇到性能瓶颈。这里有几个优化建议:

  1. 如果多台服务器需要使用,可以搭建一个HTTP服务器共享仓库,而不是每台服务器都挂载ISO。

  2. 对于频繁使用的仓库,可以考虑将ISO内容复制到本地硬盘,而不是每次都挂载。

  3. 定期更新你的本地仓库,确保包含最新的安全更新。

  4. 对于生产环境,建议开启GPG验证,确保软件包的安全性。

在实际项目中,我发现这种本地仓库方案特别适合以下场景:

  • 安全要求高的生产环境
  • 批量部署的服务器集群
  • 开发测试环境的快速搭建
  • 需要严格版本控制的场合

构建稳定的本地yum源是Linux系统管理中的一项基础但重要的技能。掌握了这个方法,你就能在各种网络受限的环境中游刃有余地管理软件包。刚开始可能会遇到一些问题,但按照这个流程多实践几次,很快就能得心应手了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 20:11:32

Agent 的“性格”设定:如何通过 System Prompt 控制 Agent 的行为风格?

Agent 的"性格"设定:如何通过 System Prompt 控制 Agent 的行为风格? 1. 引入与连接:当人工智能遇见"人格" 1.1 一个引人深思的场景 想象一下,你正在开发两款客户服务聊天机器人,它们都基于相同的大型语言模型(LLM),能够回答相同的产品问题,处…

作者头像 李华
网站建设 2026/4/22 20:10:00

ArcGIS水文分析避坑指南:手把手搞定流向、流量、SPI、TWI计算(附填洼与Z因子设置)

ArcGIS水文分析实战避坑手册:从流向计算到指数建模的深度解析 在数字地形分析领域,水文参数的准确计算直接关系到流域模拟、土壤侵蚀预测和洪水风险评估的可靠性。作为行业标准工具的ArcGIS虽然提供了完整的水文分析工具箱,但实际操作中从DEM…

作者头像 李华
网站建设 2026/4/22 20:07:24

如何5分钟搭建Steam清单自动下载系统:Onekey终极指南

如何5分钟搭建Steam清单自动下载系统:Onekey终极指南 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 对于Steam游戏爱好者和MOD开发者来说,获取Depot清单文件一直是个技术…

作者头像 李华
网站建设 2026/4/22 20:03:38

iSCSI存储路径频繁切换(APD)?3个核心排查点,快速稳下来

运维小伙伴在使用iSCSI存储时,常会遇到令人头疼的APD问题——iSCSI存储路径频繁切换,导致虚拟机卡顿、存储读写延迟,甚至出现短暂的IO中断,严重影响业务稳定性。其实APD(路径异常断开)的核心诱因很明确,主要和MPIO配置…

作者头像 李华
网站建设 2026/4/22 20:00:57

如何快速掌握Redis可视化工具:高效管理数据库的完整指南

如何快速掌握Redis可视化工具:高效管理数据库的完整指南 【免费下载链接】AnotherRedisDesktopManager 🚀🚀🚀A faster, better and more stable Redis desktop manager [GUI client], compatible with Linux, Windows, Mac. 项…

作者头像 李华
网站建设 2026/4/22 20:00:52

春招上岸字节,我的编程面试准备全流程分享

文章目录前言一、战前准备:简历是你的第一张脸(1月份)1.1 简历不是"记流水账",而是"讲故事"1.2 技术栈要"投其所好",突出字节特色1.3 内推是"绿色通道",但不是&qu…

作者头像 李华