Step6—本地yum源配置
Kylin V10 专题说明
本文基于 Kylin V10(SP3 Halberd)aarch64 系统环境编写,命令、包名及目录路径均已针对 Kylin 官方仓库 (kylin-v10.repo) 适配。
其他系统(如 Rocky、openEuler、Ubuntu 等)请参考对应章节。
# 1. 生成 YUM 仓库索引 🏗️
Nginx 仅提供静态文件访问能力,而 YUM/DNF 客户端需要读取 repodata 索引才能识别包内容。
因此,我们必须使用 createrepo 工具生成元数据。
# 1.1 安装 createrepo 工具
dnf install -y createrepo
1
笔记
createrepo 在 Kylin V10 官方源中自带,可直接安装;离线环境可提前缓存 rpm 包。
# 1.2 生成索引
createrepo /data/modules
1
执行后,会在 /data/modules 下生成一个 repodata/ 目录,
其中存放 YUM 解析所需的 XML 元数据文件。
# 1.3 更新索引(仓库内容变化后)
每当新增或删除 RPM 包时,需重新生成索引:
createrepo --update /data/modules
1
这样无需删除旧文件,即可让新包即时生效。
# 1.4 建议的多目录结构(适配 aarch64 的 Ambari/Bigtop)
(base) [root@dev1 modules]# tree
.
├── ambari
│ ├── ambari-agent-3.0.0.0-3.0.0.ky10.aarch64.rpm
│ └── ambari-server-3.0.0.0-3.0.0.ky10.aarch64.rpm
├── ambari-metrics
│ ├── ambari-metrics-collector-3.1.0-1.ky10.aarch64.rpm
│ ├── ambari-metrics-grafana-3.1.0-1.ky10.aarch64.rpm
│ ├── ambari-metrics-hadoop-sink-3.1.0-1.ky10.aarch64.rpm
│ └── ambari-metrics-monitor-3.1.0-1.ky10.aarch64.rpm
├── bigtop
│ ├── alluxio
│ │ └── alluxio_3_2_0-2.9.4-3.0.0.ky10.aarch64.rpm
│ ├── atlas
│ │ ├── atlas_3_2_0-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── atlas_3_2_0-couchbase-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── atlas_3_2_0-falcon-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── atlas_3_2_0-hbase-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── atlas_3_2_0-hive-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── atlas_3_2_0-impala-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── atlas_3_2_0-kafka-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── atlas_3_2_0-sqoop-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ └── atlas_3_2_0-storm-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ ├── bigtop-groovy
│ │ └── bigtop-groovy-2.5.4-3.0.0.ky10.aarch64.rpm
│ ├── bigtop-jsvc
│ │ ├── bigtop-jsvc-1.2.4-3.0.0.ky10.aarch64.rpm
│ │ ├── bigtop-jsvc-debuginfo-1.2.4-3.0.0.ky10.aarch64.rpm
│ │ └── bigtop-jsvc-debugsource-1.2.4-3.0.0.ky10.aarch64.rpm
│ ├── bigtop-select
│ │ └── bigtop-select-3.2.0-3.0.0.ky10.aarch64.rpm
│ ├── bigtop-utils
│ │ └── bigtop-utils-3.2.0-3.0.0.ky10.aarch64.rpm
│ ├── celeborn
│ │ └── celeborn_3_2_0-0.5.3-3.0.0.ky10.aarch64.rpm
│ ├── cloudbeaver
│ │ └── cloudbeaver_3_2_0-25.1.0-3.0.0.ky10.aarch64.rpm
│ ├── dolphinscheduler
│ │ └── dolphinscheduler_3_2_0-3.2.2-3.0.0.ky10.aarch64.rpm
│ ├── doris
│ │ ├── doris_3_2_0-2.1.7-3.0.0.ky10.aarch64.rpm
│ │ ├── doris_3_2_0-doris-be-2.1.7-3.0.0.ky10.aarch64.rpm
│ │ ├── doris_3_2_0-doris-fe-2.1.7-3.0.0.ky10.aarch64.rpm
│ │ └── doris_3_2_0-doris-hdfs_broker-2.1.7-3.0.0.ky10.aarch64.rpm
│ ├── flink
│ │ ├── flink_3_2_0-1.17.2-3.0.0.ky10.aarch64.rpm
│ │ ├── flink_3_2_0-jobmanager-1.17.2-3.0.0.ky10.aarch64.rpm
│ │ └── flink_3_2_0-taskmanager-1.17.2-3.0.0.ky10.aarch64.rpm
│ ├── hadoop
│ │ ├── hadoop_3_2_0-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-client-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-conf-pseudo-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-debuginfo-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-debugsource-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-doc-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-hdfs-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-hdfs-datanode-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-hdfs-dfsrouter-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-hdfs-fuse-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-hdfs-journalnode-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-hdfs-namenode-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-hdfs-secondarynamenode-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-hdfs-zkfc-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-httpfs-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-kms-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-libhdfs-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-libhdfs-devel-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-libhdfspp-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-libhdfspp-devel-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-mapreduce-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-mapreduce-historyserver-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-yarn-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-yarn-nodemanager-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-yarn-proxyserver-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-yarn-resourcemanager-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ ├── hadoop_3_2_0-yarn-router-3.3.4-3.0.0.ky10.aarch64.rpm
│ │ └── hadoop_3_2_0-yarn-timelineserver-3.3.4-3.0.0.ky10.aarch64.rpm
│ ├── hbase
│ │ ├── hbase_3_2_0-2.4.13-3.0.0.ky10.aarch64.rpm
│ │ ├── hbase_3_2_0-doc-2.4.13-3.0.0.ky10.aarch64.rpm
│ │ ├── hbase_3_2_0-master-2.4.13-3.0.0.ky10.aarch64.rpm
│ │ ├── hbase_3_2_0-regionserver-2.4.13-3.0.0.ky10.aarch64.rpm
│ │ ├── hbase_3_2_0-rest-2.4.13-3.0.0.ky10.aarch64.rpm
│ │ ├── hbase_3_2_0-thrift2-2.4.13-3.0.0.ky10.aarch64.rpm
│ │ └── hbase_3_2_0-thrift-2.4.13-3.0.0.ky10.aarch64.rpm
│ ├── hive
│ │ ├── hive_3_2_0-3.1.3-3.0.0.ky10.aarch64.rpm
│ │ ├── hive_3_2_0-hbase-3.1.3-3.0.0.ky10.aarch64.rpm
│ │ ├── hive_3_2_0-hcatalog-3.1.3-3.0.0.ky10.aarch64.rpm
│ │ ├── hive_3_2_0-hcatalog-server-3.1.3-3.0.0.ky10.aarch64.rpm
│ │ ├── hive_3_2_0-jdbc-3.1.3-3.0.0.ky10.aarch64.rpm
│ │ ├── hive_3_2_0-metastore-3.1.3-3.0.0.ky10.aarch64.rpm
│ │ ├── hive_3_2_0-server2-3.1.3-3.0.0.ky10.aarch64.rpm
│ │ ├── hive_3_2_0-webhcat-3.1.3-3.0.0.ky10.aarch64.rpm
│ │ └── hive_3_2_0-webhcat-server-3.1.3-3.0.0.ky10.aarch64.rpm
│ ├── hudi
│ │ └── hudi_3_2_0-1.0.1-3.0.0.ky10.aarch64.rpm
│ ├── hue
│ │ └── hue_3_2_0-4.11.0-3.0.0.ky10.aarch64.rpm
│ ├── impala
│ │ └── impala_3_2_0-4.4.1-3.0.0.ky10.aarch64.rpm
│ ├── kafka
│ │ ├── kafka_3_2_0-2.8.1-3.0.0.ky10.aarch64.rpm
│ │ └── kafka_3_2_0-server-2.8.1-3.0.0.ky10.aarch64.rpm
│ ├── knox
│ │ └── knox_3_2_0-2.1.0-3.0.0.ky10.aarch64.rpm
│ ├── livy
│ │ └── livy_3_2_0-0.7.1-3.0.0.ky10.aarch64.rpm
│ ├── ozone
│ │ └── ozone_3_2_0-1.4.1-3.0.0.ky10.aarch64.rpm
│ ├── paimon
│ │ └── paimon_3_2_0-1.1.0-3.0.0.ky10.aarch64.rpm
│ ├── phoenix
│ │ └── phoenix_3_2_0-5.1.2-3.0.0.ky10.aarch64.rpm
│ ├── ranger
│ │ ├── ranger_3_2_0-admin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-atlas-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-elasticsearch-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-hbase-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-hdfs-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-hive-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-kafka-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-kms-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-knox-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-presto-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-solr-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-sqoop-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-storm-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-tagsync-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-trino-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ ├── ranger_3_2_0-usersync-2.4.0-3.0.0.ky10.aarch64.rpm
│ │ └── ranger_3_2_0-yarn-plugin-2.4.0-3.0.0.ky10.aarch64.rpm
│ ├── solr
│ │ ├── solr_3_2_0-8.11.2-3.0.0.ky10.aarch64.rpm
│ │ └── solr_3_2_0-doc-8.11.2-3.0.0.ky10.aarch64.rpm
│ ├── spark
│ │ ├── spark_3_2_0-3.5.5-3.0.0.ky10.aarch64.rpm
│ │ ├── spark_3_2_0-core-3.5.5-3.0.0.ky10.aarch64.rpm
│ │ ├── spark_3_2_0-datanucleus-3.5.5-3.0.0.ky10.aarch64.rpm
│ │ ├── spark_3_2_0-external-3.5.5-3.0.0.ky10.aarch64.rpm
│ │ ├── spark_3_2_0-history-server-3.5.5-3.0.0.ky10.aarch64.rpm
│ │ ├── spark_3_2_0-master-3.5.5-3.0.0.ky10.aarch64.rpm
│ │ ├── spark_3_2_0-python-3.5.5-3.0.0.ky10.aarch64.rpm
│ │ ├── spark_3_2_0-sparkr-3.5.5-3.0.0.ky10.aarch64.rpm
│ │ ├── spark_3_2_0-thriftserver-3.5.5-3.0.0.ky10.aarch64.rpm
│ │ ├── spark_3_2_0-worker-3.5.5-3.0.0.ky10.aarch64.rpm
│ │ └── spark_3_2_0-yarn-shuffle-3.5.5-3.0.0.ky10.aarch64.rpm
│ ├── sqoop
│ │ ├── sqoop_3_2_0-1.4.7-3.0.0.ky10.aarch64.rpm
│ │ └── sqoop_3_2_0-metastore-1.4.7-3.0.0.ky10.aarch64.rpm
│ ├── superset
│ │ └── superset_3_2_0-4.1.2-3.0.0.ky10.aarch64.rpm
│ ├── tez
│ │ └── tez_3_2_0-0.10.1-3.0.0.ky10.aarch64.rpm
│ ├── trino
│ │ ├── trino_3_2_0-trino-cli-474-3.0.0.ky10.aarch64.rpm
│ │ └── trino_3_2_0-trino-server-474-3.0.0.ky10.aarch64.rpm
│ ├── zeppelin
│ │ └── zeppelin_3_2_0-0.10.1-3.0.0.ky10.aarch64.rpm
│ └── zookeeper
│ ├── zookeeper_3_2_0-3.5.9-3.0.0.ky10.aarch64.rpm
│ ├── zookeeper_3_2_0-debuginfo-3.5.9-3.0.0.ky10.aarch64.rpm
│ ├── zookeeper_3_2_0-debugsource-3.5.9-3.0.0.ky10.aarch64.rpm
│ ├── zookeeper_3_2_0-native-3.5.9-3.0.0.ky10.aarch64.rpm
│ ├── zookeeper_3_2_0-rest-3.5.9-3.0.0.ky10.aarch64.rpm
│ └── zookeeper_3_2_0-server-3.5.9-3.0.0.ky10.aarch64.rpm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
提示
如果仓库规模较大,可以在每个子目录执行 createrepo,
再在 Nginx 下按目录分开访问,例如:
http://<ip>/ambari/、http://<ip>/bigtop/。
# 2. 配置客户端 YUM 源 🖥️
客户端可通过 local.repo 文件访问本地仓库。
# 2.1 创建 YUM 源配置
vim /etc/yum.repos.d/local.repo
1
写入以下内容:
[local-base]
name=Local YUM Repository
baseurl=http://192.168.3.1/
enabled=1
gpgcheck=0
1
2
3
4
5
2
3
4
5
| 字段 | 说明 |
|---|---|
| baseurl | 指向 Nginx 服务端(Step5)IP |
| enabled | 启用该仓库 |
| gpgcheck | 禁用 GPG 签名检查(内部源可关闭) |
# 2.2 清理缓存并生成索引
dnf clean all
dnf makecache
1
2
2
执行后客户端将从 Nginx 仓库拉取最新索引。
# 2.3 验证是否生效
dnf repolist
1
输出类似:
[root@dev1 yum.repos.d]# dnf repolist
repo id repo name
BIGTOP-3.2.0-repo-1 BIGTOP-3.2.0-repo-1
ambari Ambari Local Repository
kylin-v10-os Kylin V10 SP3 - OS
kylin-v10-updates Kylin V10 SP3 - Updates
mariadb MariaDB 10.11
openeuler-epol-main openEuler 20.03-LTS-SP3 EPOL - main
[root@dev1 yum.repos.d]#
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
说明本地源配置成功。
# 3. 多客户端分发 local.repo 文件 🚀
如果集群中有多台主机,可统一分发:
scp /etc/yum.repos.d/local.repo root@dev2:/etc/yum.repos.d/
scp /etc/yum.repos.d/local.repo root@dev3:/etc/yum.repos.d/
1
2
2
然后批量执行:
dnf clean all
dnf makecache
1
2
2