(blibli同步视频:https://www.bilibili.com/video/BV1zLZVYpEfV/?vd_source=ae216d62b7bae16ca9da13d217cc92fb)
网络限制:在一些企业内部网络环境中,可能无法直接访问互联网,导致无法从官方 Yum 源获取软件包。通过搭建本地 Yum 仓库,可以将所需的软件包提前下载到本地,解决网络受限的问题。
提升速度:从本地仓库获取软件包,避免了因网络波动导致的下载缓慢,大大提高了软件包安装和更新的速度。
版本控制:可以根据企业的需求,定制自己的软件包版本,确保整个环境中的软件版本一致性,便于管理和维护。

**操作系统:**以AlmaLinux-9.4-minimal为例进行演示,其他基于 Red Hat 的系统操作步骤类似。
**安装必要工具:**确保 server 系统安装了yum-utils、createrepo 软件包。可以使用以下命令进行安装:
yum install -y createrepo #安装createrepo yum install -y yum-utils #安装yum-utils
reposync 命令是 yum-utils 工具集中的一员,它可以将远程 Yum 仓库的软件包同步到本地。编辑/etc/yum.repos.d/目录下的仓库源文件,例如Almalinux-9.4-BaseOS.repo。可以根据需要注释掉一些不需要的源,只保留一个源用于同步。以同步 Almalinux 阿里镜像源为例,确保以下配置:
[baseos] name=AlmaLinux $releasever - BaseOS # mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos baseurl=https://mirrors.aliyun.com/almalinux/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 # countme=1 # gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 # metadata_expire=86400 # enabled_metadata=1 reposync --repo $reponame -p $yumpath # -r参数指定要同步的仓库名称,-p参数指定同步到本地的路径。执行该命令后,reposync 会将远程base仓库中的软件包下载到$yumpath目录下。
当软件包同步完成后,需要使用 createrepo 命令创建仓库索引,以便 Yum 能够正确识别和使用这些软件包。
createrepo -v /yumrepo/ #创建rpm索引,生成repodata文件
当rpm包和repodata都创建好后,需要使用web服务提供yum仓库,确保以下配置:
yum -y install httpd systemctl disable firewalld --now #关闭防火墙 setenforce 0 #关闭selinux mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak #将默认欢迎页面注释掉 cat >/etc/httpd/conf.d/yum.conf << EOF <Virtualhost *:80> Servername 10.163.1.107 DocumentRoot /yumrepo <Directory /yumrepo> Require all granted Options Indexes FollowSymLinks </Directory> </VirtualHost> EOF
需要将client上的yum仓库全部备份,增加新的yum仓库。确保以下配置:
cat > /etc/yum.repo.d/test.repo < EOF [test] name=test baseurl=http://10.163.1.107/ enabled=1 EOF yum makecache
通过 reposync 命令同步远程仓库软件包,再利用 createrepo 命令创建仓库索引,我们成功搭建了一个本地 Yum 仓库。这不仅解决了网络受限的问题,还提高了软件包管理的效率和可控性。在实际应用中,可以根据需要同步多个仓库,并定期更新同步的软件包和索引,以确保本地仓库的时效性和完整性。希望本文能帮助你顺利搭建本地 Yum 仓库,提升 Linux 系统管理的效率。
本文作者:大鹏
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!