本文同步的是外网ARM的yum源仓库,若需要同步X86的yum源仓库,则需要修改yum配置文件的架构为X86,其他配置不变。
a)确定系统版本及网络情况
首先确定服务器环境是否可以连接外网,若在受限的网络中,请确保可以不受限访问源地址 使用下面的命令确定系统版本情况 [root@localhost ~]# cat /etc/.productinfo Kylin Linux Advanced Server release V10(SP1)/(Tercel)-aarch64-Build20/20210518
b)关闭系统防火墙和 selinux
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld [root@localhost ~]# vim /etc/sysconfig/selinux SELINUX=disable
a)备份原yum配置文件
[root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost ~]#mkdir bak && cp *.repo bak
b)yum配置
# 编写repo文件 [root@localhost ~]# vim /etc/yum.repos.d/local.repo [ks10-adv-os-sp1-aarch64] name = ks10-adv-os-sp1-aarch64 baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP1.1/os/adv/lic/base/aarch64/ gpgcheck = 0 enabled = 1 [ks10-adv-updates-sp1-aarch64] name = ks10-adv-updates-sp1-aarch64 baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP1.1/os/adv/lic/updates/aarch64/ gpgcheck = 0 enabled = 1 # 清理yum缓存文件 [root@localhost ~]# yum clean all # 重新创建 yum 元数据 [root@localhost ~]# dnf makecache Kylin Linux Advanced Server 10 - Os 27 kB/s | 3.7 kB 00:00 Kylin Linux Advanced Server 10 - Updates 18 kB/s | 2.9 kB 00:00 Metadata cache created.
a)安装所需软件包
yum -y install createrepo httpd
b)同步外网源仓库到本地
# 创建仓库存储路径 # 仓库存储位置可自定义,但是为了方便,本次将存储路径在/data # 创建packages目录作为yum仓库存储位置 mkdir /data #使用reposync命令同步外网源仓库到本地。 reposync --repoid=ks10-adv-os-sp1-aarch64 --repoid=ks10-adv-updates-sp1-aarch64 -p /data
c)创建本地索引文件
# 使用createrepo命令创建本地索引文件 createrepo /data/ks10-adv-os-sp1-aarch64/ createrepo /data/ks10-adv-updates-sp1-aarch64/
d) 启动httpd服务
# 修改http配置文件 vim /etc/httpd/conf/httpd.conf 119行 DocumentRoot "/var/www" 修改为 DocumentRoot "/data" 131行 修改为 # 删除welcome.conf文件 rm -f /etc/httpd/conf.d/welcome.conf # 启动httpd服务即可 systemctl restart httpd systemctl enable httpd
e)浏览器访问及本地测试
# 使用浏览器访问本地 yum 源, 使用下面的url进行访问测试 http://localhost/ # 创建新的测试repo文件 [root@localhost ~]# cat /etc/yum.repos.d/server.repo [ks10-adv-os-sp1-aarch64] name=ks10-adv-os-sp1-aarch64 baseurl= http://服务端IP/ks10-adv-os-sp1-aarch64/ gpgcheck=0 enable=1 [ks10-adv-updates-sp1-aarch64] name=ks10-adv-updates-sp1-aarch64 baseurl= http://服务端IP/ks10-adv-updates-sp1-aarch64/ gpgcheck=0 enable=1 清理yum元数据缓存,查看是否成功重建yum元数据 [root@localhost ~]# yum clean all [root@localhost ~]# yum repolist
a)创建同步任务脚本
# 注意修改对所需同步的repoid和yum源仓库存储位置 [root@localhost ~]# vim /opt/update_repo.sh #!/bin/bash reposync -n --repoid=ks10-adv-os-sp1-aarch64 --repoid=ks10-adv-updates-sp1-aarch64 -p /data chmod -R 755 /data/ks10-adv-os-sp1-aarch64 chmod -R 755 /data/ks10-adv-updates-sp1-aarch64 createrepo --update /data/ks10-adv-os-sp1-aarch64/ createrepo --update /data/ks10-adv-updates-sp1-aarch64/ [root@localhost ~]# chmod +x /opt/update_repo.sh
b)创建定时任务
[root@localhost ~]# crontab -e [root@localhost ~]# crontab -l 0 20 * * * /opt/update_repo.sh ## 每天晚上8点同步