-
操作系统:以 CentOS 7 为例,需要准备1个虚拟机作为 Yum 源服务器,并且确保服务器可以访问外网。1台作为客户端进行测试。
-
软件安装:在服务器上安装
httpd(用于提供 HTTP 服务)、createrepo(用于创建 Yum 源仓库)。yum install httpd createrepo -y
如果安装上述软件速度较慢可以更换yum源为阿里云:
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清理yum源缓存,重建yum源数据缓存:
sudo yum clean all sudo yum makecache
步骤一:创建存放 RPM 包的目录
通常,我们会在
/var/www/html目录下创建一个专门的目录来存放 RPM 包,这个目录将作为 Yum 源的根目录。mkdir -p /var/www/html/yumrepo
步骤二:下载 RPM 包
可以从官方镜像站或者其他可靠的来源下载所需的 RPM 包(这里建议使用国内的源),并将其复制到刚刚创建的
/var/www/html/yumrepo目录中。也可以使用reposync工具来同步整个 Yum 源仓库。同步官方 Yum 源
首先,安装
yum-utils工具,它包含了reposync命令。yum install yum-utils -y
然后,使用
reposync命令同步指定的 Yum 源到本地目录。例如,同步base源:reposync -r base -p /var/www/html/yumrepo
可以根据需要同步多个 Yum 源,如
updates、extras等。步骤三:创建 Yum 源仓库索引
使用
createrepo命令为/var/www/html/yumrepo目录下的 RPM 包创建仓库索引。createrepo /var/www/html/yumrepo
如果后续向该目录中添加或删除了 RPM 包,需要重新执行该命令来更新索引。
步骤四:配置 HTTP 服务
启动
httpd服务,并设置为开机自启。systemctl start httpd systemctl enable httpd
打开防火墙的 HTTP 端口(TCP 80),允许客户端访问。
firewall-cmd --permanent --add-service=http firewall-cmd --reload
步骤五:客户端关闭外部 Yum 源
在客户端上重命名储存原有的所有yum源文件的文件目录,并重新建yum.repos.d文件。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
步骤六:客户端内部yum源配置
在需要使用内部 Yum 源的客户端上,创建一个新的
.repo文件,例如/etc/yum.repos.d/internal.repo。vi /etc/yum.repos.d/internal.repo
在文件中添加以下内容,将
yum.example.com替换为 Yum 源服务器的实际域名或 IP 地址。[internal] name=Internal Yum Repository baseurl=http://yum.example.com/yumrepo #例:baseurl=http://192.168.0.1/yumrepo enabled=1 gpgcheck=0
保存并退出文件。
步骤七:测试内部 Yum 源
在客户端上执行
yum clean all清除本地缓存,然后使用yum repolist命令查看可用的 Yum 源列表。yum clean all yum repolist
如果能够看到
internal源,并且显示了可用的软件包数量,说明内部 Yum 源配置成功。定期更新 Yum 源
为了保证内部 Yum 源中的软件包是最新的,需要定期同步官方源并更新仓库索引。可以编写一个脚本,使用
cron定时任务来自动完成这些操作。#!/bin/bash reposync -r base -p /var/www/html/yumrepo reposync -r updates -p /var/www/html/yumrepo createrepo --update /var/www/html/yumrepo
将上述脚本保存为
/root/update_yumrepo.sh,并添加执行权限。chmod +x /root/update_yumrepo.sh
然后使用
crontab -e命令编辑定时任务,例如每月1日凌晨 2 点执行更新脚本。0 2 1 * * /root/update_yumrepo.sh
通过以上步骤,你就可以成功制作并使用内部 Yum 源了
2383

被折叠的 条评论
为什么被折叠?



