2025-11-11
linux
00

目录

1. 为什么要搭建本地 Yum 仓库
2. 准备工作
实验结构
3. 使用reposync命令同步远程仓库
4. 使用 createrepo 命令创建本地仓库索引
5. 通过web服务提供yum仓库
6.client上的配置
7.总结

(blibli同步视频:https://www.bilibili.com/video/BV1zLZVYpEfV/?vd_source=ae216d62b7bae16ca9da13d217cc92fb)

1. 为什么要搭建本地 Yum 仓库

网络限制:在一些企业内部网络环境中,可能无法直接访问互联网,导致无法从官方 Yum 源获取软件包。通过搭建本地 Yum 仓库,可以将所需的软件包提前下载到本地,解决网络受限的问题。

提升速度:从本地仓库获取软件包,避免了因网络波动导致的下载缓慢,大大提高了软件包安装和更新的速度。

版本控制:可以根据企业的需求,定制自己的软件包版本,确保整个环境中的软件版本一致性,便于管理和维护。

2. 准备工作

实验结构

5dc0b88148d3b0be2c7e535aeb1c739e.image.png

**操作系统:**以AlmaLinux-9.4-minimal为例进行演示,其他基于 Red Hat 的系统操作步骤类似。

**安装必要工具:**确保 server 系统安装了yum-utils、createrepo 软件包。可以使用以下命令进行安装:

yum install -y createrepo #安装createrepo
yum install -y yum-utils #安装yum-utils

3. 使用reposync命令同步远程仓库

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目录下。

4. 使用 createrepo 命令创建本地仓库索引

当软件包同步完成后,需要使用 createrepo 命令创建仓库索引,以便 Yum 能够正确识别和使用这些软件包。

createrepo -v /yumrepo/ #创建rpm索引,生成repodata文件

5. 通过web服务提供yum仓库

当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

6.client上的配置

需要将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

7.总结

通过 reposync 命令同步远程仓库软件包,再利用 createrepo 命令创建仓库索引,我们成功搭建了一个本地 Yum 仓库。这不仅解决了网络受限的问题,还提高了软件包管理的效率和可控性。在实际应用中,可以根据需要同步多个仓库,并定期更新同步的软件包和索引,以确保本地仓库的时效性和完整性。希望本文能帮助你顺利搭建本地 Yum 仓库,提升 Linux 系统管理的效率。

本文作者:大鹏

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!