视频加载失败

制作基于阿里云base、epel等源的离线仓库ISO镜像文件

789 字
4 分钟
制作基于阿里云base、epel等源的离线仓库ISO镜像文件

本文撰写于 2023 年 9 月 29 日,最后更新于 2023 年 10 月 1 日。

因某些项目实施环境不具备连通公网的条件,或者申请开通公网步骤繁琐,影响项目实施,所以制作一个便于随身携带的离线 yum 库是非常有必要的。

基础环境#

替换官方 yum 库为 aliyun#

[root@localhost ~]#curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

添加阿里云 epel 库#

[root@localhost ~]#curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]#yum clean all
[root@localhost ~]#yum makecache

安装 reposync 工具#

reposync 用来获取 yum 库中的 RPM 包

#查询reposync包含在哪个软件包内
[root@localhost ~]#yum provides reposync
#下载yum-utils工具箱,包含reposync命令
[root@localhost ~]#yum -y install yum-utils

安装 createrepo 工具#

createrepo 工具可以把大量 RPM 包制作成离线 yum 库。

[root@localhost ~]#yum -y install createrepo

获取 yum 库离线包#

#计划把同步的离线包存放到/data/repo目录
[root@localhost ~]#mkdir /data/repo
#查看当前已启用的yum源
[root@localhost ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,743
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 509
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 3,570
repolist: 27,894
#使用reposync同步yum源
#reposync用法:"reposync -r"指定需要同步的yum库名称,如只同步epel源"reposync -r epel"; -p 选项,指定下载的RPM包存放位置。
#reposync同步所有已启用的yum库
[root@localhost ~]#reposync -p /data/repo

等待很长一段时间后同步结束,查看下目录大小

[root@localhost ~]#du -sh /data/repo
48G /data/repo

创建离线 yum 库#

#把/repo目录下的RPM软件包做成离线yum库
[root@localhost ~]#createrepo -v /data/repo

执行完毕,查看/data/repo目录,所有已启用的 yum 源离线文件都存放在独自的目录中。

[root@localhost ~]# ll /data/repo
total 16
drwxr-xr-x. 3 root root 4096 Mar 3 23:19 base
drwxr-xr-x. 3 root root 4096 Mar 4 00:03 epel
drwxr-xr-x. 3 root root 4096 Mar 4 21:57 extras
drwxr-xr-x. 3 root root 4096 Mar 4 22:00 updates

把/data/repo 目录下的 yum 库创建为 ISO 文件#

使用 mkisofs 工具,默认没有安装

#查询包含mkisofs工具的软件包
[root@localhost ~]#yum provides mkisofs
#genisoimage软件包含mkisofs工具,安装genisoimage
[root@localhost ~]#yum -y install genisoimage
#创建存放ISO镜像文件的目录
[root@localhost ~]#mkdir /data/iso
[root@localhost ~]#cd /data/iso
#使用mkisofs工具制作ISO镜像文件,镜像名称为:epel.iso
[root@localhost iso]#mkisofs -r -o epel.iso /data/repo/
#制作完毕后,查看epel.iso文件
[root@localhost iso]#ls -lh

挂载 ISO 文件作为本地 yum 源#

创建 ISO 挂载点目录#

任意位置及名称都可以

[root@localhost ~]#mkdir /media/iso

通过mount命令将 ISO 文件挂载到挂载点#

[root@localhost ~]#mount -o loop /data/iso/epel.iso /media/iso

创建新的 repo 文件#

[root@localhost ~]#cd /etc/yum.repos.d
[root@localhost ~]#mkdir repo.bak
[root@localhost ~]#mv *.repo repo.bak
[root@localhost ~]#vim local-epel.repo
[local-epel]
name=CentOS-$releasever - Media
baseurl=file:///media/iso/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

清理 yum 缓存,重新构建 yum 本地缓存索引#

[root@localhost ~]#yum clean all
[root@localhost ~]#yum makecache

尝试安装软件包:nginx#

[root@localhost ~]#yum -y install nginx

如果安装正常,则证明基于离线库制作的 iso 镜像文件制作成功。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

制作基于阿里云base、epel等源的离线仓库ISO镜像文件
https://blog.azxle.cn/posts/offline-yum-repo-iso/
作者
azxle
发布于
2026-07-21
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
azxle
持续折腾,持续记录。
公告
博客已上线,目前处于初期阶段,内容持续补充中。如有问题或建议,欢迎留言。
分类
标签
最新动态
站点统计
文章
12
分类
2
标签
27
总字数
4,914
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
EdgeOne Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录