Step6—本地yum源配置
# 使用本地 YUM 源进行软件安装 📦🚀
书接上回,我们已经通过 Nginx 提供了本地 YUM 仓库的访问能力。接下来,我们需要进一步 初始化 YUM 仓库,并在客户端正确 * 配置 YUM 源* 以使用本地 YUM 仓库进行软件安装。
# 1. 生成 YUM 仓库索引 🏗️
Nginx 仅提供 文件访问功能,但 YUM 需要一个 仓库索引 来解析 RPM 包信息。因此,必须使用 createrepo
生成 YUM 元数据,使
YUM 能够识别仓库内容。
# 1.1 安装 createrepo 工具
yum install -y createrepo
1
# 1.2 生成 YUM 仓库索引
createrepo /data/modules
1
该命令会在 /data/modules
目录下生成 repodata/
目录,并存放 YUM 需要的索引文件。
# 1.3 当仓库有新 RPM 包时,重新生成索引
如果以后有新 RPM 包加入仓库,需要重新执行:
createrepo --update /data/modules
1
这样,新的 RPM 包就会被 YUM 识别,无需手动删除旧的索引文件。
# 2. 配置客户端 YUM 源 🖥️
在客户端(需要使用本地 YUM 源的服务器)上,我们需要 手动配置 YUM 仓库地址,指向本地 YUM 服务器。
# 2.1 创建 YUM 配置文件
在客户端(如 192.168.3.2)上,创建 YUM 源:
vim /etc/yum.repos.d/local.repo
1
添加如下内容:
[ambari]
name=Local Yum Repository
baseurl=http://192.168.3.1/ # 这里指向 YUM 服务器的地址
enabled=1
gpgcheck=0
1
2
3
4
5
2
3
4
5
其中:
baseurl=http://192.168.3.1/
→ 指向 YUM 服务器的 IP(请根据实际 IP 修改)。enabled=1
→ 启用该 YUM 源。gpgcheck=0
→ 禁用 GPG 签名检查(如需开启,需要额外配置 GPG 签名)。
# 2.2 清理 YUM 缓存并生成新索引
yum clean all
yum makecache
1
2
2
执行后,客户端会从 YUM 服务器获取最新的 RPM 包信息。
# 2.3 查看客户端是否能访问本地 YUM 源
yum repolist
1
如果输出中包含 ambari
,说明本地 YUM 源已配置成功:
在主机 192.168.3.1 上配置 Yum 源,指向 192.168.3.1...
Yum 源已配置为 http://192.168.3.1/
已加载插件:fastestmirror, langpacks
正在清理软件源: ambari base epel extras mariadb nginx-stable updates
Cleaning up list of fastest mirrors
Other repos take up 3.0 M of disk space (use --verbose for details)
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
源标识 源名称 状态
ambari Ambari Local Repository 111
base/7/x86_64 CentOS-7 - Base - repo.huaweicloud.com 10,072
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,791
extras/7/x86_64 CentOS-7 - Extras - repo.huaweicloud.com 526
mariadb MariaDB 44
nginx-stable nginx stable repo 364
updates/7/x86_64 CentOS-7 - Updates - repo.huaweicloud.com 6,173
repolist: 31,081
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 3. 在所有客户端分发 YUM 源文件 🚀
如果有 多台客户端,可以批量复制 ambari.repo
文件:
scp /etc/yum.repos.d/ambari.repo root@dev1:/etc/yum.repos.d/
scp /etc/yum.repos.d/ambari.repo root@dev3:/etc/yum.repos.d/
1
2
2
然后在所有客户端上执行:
yum clean all
yum makecache
yum repolist
1
2
3
2
3