实现私有Yum仓库
架构图

每个系统的最后的路径都不一样,所以要看清,尽量跟大厂路径对齐,起始最重要的就是Packages和repodata,你看阿里云的路径,我们只要走到有repedata的文件夹下,就说明走对了,不用往下走了
主机拓扑
主机名 |
ip |
os |
yum server |
192.168.48.128 |
Rocker8.9 |
client1 |
192.168.48.11 |
Centos Stream 8 |
client2 |
192.168.48.10 |
Centos 7 |
前情提要:所有要进行上传yum源的机子都要挂载光盘,也可以选择网络备份
自动挂载光盘
1 2 3 4 5 6
| yum install autofs -y systemctl enable --now autofs sed -i '/^[[:space:]]*#.*misc.*\/etc\/auto.misc/ s/^#//' /etc/auto.master systemctl restart autofs ls /misc/cd
|
部署yum server
操作节点:【yum server】
Rocky8
1 2 3 4 5 6 7 8 9 10 11 12 13
| yum install -y httpd systemctl disable --now firewalld.service systemctl enable --now httpd.service
mkdir -p /var/www/html/rockylinux/8/{BaseOS,AppStream} cp -r /misc/cd/BaseOS/* /var/www/html/rockylinux/8/BaseOS cp -r /mnt/BaseOS/repodata /var/www/html/rockylinux/8/BaseOS/ cp -r /misc/cd/AppStream/* /var/www/html/rockylinux/8/AppStream cp -r /mnt/AppStream/repodata /var/www/html/rockylinux/8/AppStream/
|
现在一些基本的文件都拷过去了访问网页就可以看见了
1
| http://192.168.48.128/rockylinux/8/
|

假设我还有个extras
源想拷过去呢?前面那个是走本地,这个可以走网络,这时候就可以用到yum仓同步工具
1
| https://mirrors.aliyun.com/rockylinux/8/extras/x86_64/os/
|

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
| mkdir -p repo.bak mv /etc/yum.repos.d/* repo.bak/
cat > /etc/yum.repos.d/qianyios.repo<<"EOF2" [AppStream] name=AppStream baseurl=file:///var/www/html/rockylinux/8/AppStream/x86_64/os/ gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial gpgcheck=1 enabled=1 [BaseOS] name=BaseOS baseurl=file:///var/www/html/rockylinux/8/BaseOS/x86_64/os/ gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial gpgcheck=1 enabled=1 [extras] name=extras baseurl=file:///var/www/html/rockylinux/8/extras/x86_64/os/ gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial gpgcheck=1 enabled=1 EOF2
cat > /etc/yum.repos.d/qianyios-external-rocky8.repo<<"EOF2" [AppStream-external-rocky8] name=AppStream-external-rocky8 baseurl=https://mirrors.aliyun.com/rockylinux/8/AppStream/x86_64/os/ gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial gpgcheck=1 enabled=1 [BaseOS-external-rocky8] name=BaseOS-external-rocky8 baseurl=https://mirrors.aliyun.com/rockylinux/8/BaseOS/x86_64/os/ gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial gpgcheck=1 enabled=1 [extras-external-rocky8] name=extras-external-rocky8 baseurl=https://mirrors.aliyun.com/rockylinux/8/extras/x86_64/os/ gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial gpgcheck=1 enabled=1 EOF2
|
1 2 3 4 5
| dnf reposync --repoid=REPOID --download-metadata -p /path dnf reposync --help
reposync --repoid=REPOID --download-metadata -p /path
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| cd /var/www/html/rockylinux/8 mkdir -p AppStream/x86_64/os/ mkdir -p BaseOS/x86_64/os/ mv AppStream/{Packages,repodata} AppStream/x86_64/os/ mv BaseOS/{Packages,repodata} BaseOS/x86_64/os/
mkdir -p /var/www/html/rockylinux/8/ yum reposync --repoid=extras-external-rocky8 --download-metadata -p /var/www/html/rockylinux/8/
mv /var/www/html/rockylinux/8/{extras-external-rocky8,extras} mkdir -p extras/x86_64/os/ mv extras/{Packages,repodata} extras/x86_64/os/
|

这就是成果
测试自己是否能创建缓存成功
1 2 3 4 5 6 7
| [root@localhost 8]# yum clean all && yum makecache 75 个文件已删除 AppStream 410 MB/s | 8.7 MB 00:00 BaseOS 237 MB/s | 2.6 MB 00:00 extras 6.4 MB/s | 15 kB 00:00 元数据缓存已建立。
|
Centos Strem 8
远程同步
操作节点:【Centos Strem 8】
从Centos Strem 8复制到yumserver,如果你没有centos stream 8的机子,那就直接选网络同步
1 2 3 4
|
scp -r /misc/cd/BaseOS 192.168.48.128:/var/www/html/centos/8-stream/ scp -r /misc/cd/AppStream 192.168.48.128:/var/www/html/centos/8-stream/
|
网络同步
操作节点:【yum server】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| cat > /etc/yum.repos.d/qianyios-external--Centos-Strem-8.repo<<"EOF2" [AppStream-external-Centos-Strem-8] name=AppStream-external-Centos-Strem-8 baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/ gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official gpgcheck=1 enabled=1 [BaseOS-external-Centos-Strem-8] name=BaseOS-external-Centos-Strem-8 baseurl=https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/ gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official gpgcheck=1 enabled=1 [extras-external-Centos-Strem-8] name=extras-external-Centos-Strem-8 baseurl=https://mirrors.aliyun.com/centos/8-stream/extras/x86_64/os/ gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official gpgcheck=1 enabled=1 EOF2
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
yum reposync --repoid=AppStream-external-Centos-Strem-8 --download-metadata -p /var/www/html/centos/8-stream/
yum reposync --repoid=BaseOS-external-Centos-Strem-8 --download-metadata -p /var/www/html/centos/8-stream/
yum reposync --repoid=extras-external-Centos-Strem-8 --download-metadata -p /var/www/html/centos/8-stream/
mv /var/www/html/centos/8-stream/{AppStream-external-Centos-Strem-8,AppStream} mv /var/www/html/centos/8-stream/{BaseOS-external-Centos-Strem-8,BaseOS} mv /var/www/html/centos/8-stream/{extras-external-Centos-Strem-8,extras} cd /var/www/html/centos/8-stream/extras mv Packages x86_64/os/ mv repodata x86_64/os/
|

centos7
手动的我就不写了一个意思,这里我就写网络的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| cat > /etc/yum.repos.d/qianyios-external-centos7.repo<<"EOF2" [base-external-centos7] name=BaseOS-external-centos7 baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64 gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 gpgcheck=1 enabled=1 [extras-external-centos7] name=extras-external-centos7 baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/ gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 gpgcheck=1 enabled=1 EOF2
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| mkdir -p /var/www/html/centos/7/os/x86_64/
yum reposync --repoid=base-external-centos7 --download-metadata -p /var/www/html/centos/7/
yum reposync --repoid=extras-external-centos7 --download-metadata -p /var/www/html/centos/7/
mv /var/www/html/centos/7/{base-external-centos7,base} cd /var/www/html/centos/7 mv base os/x86_64/
mv /var/www/html/centos/7/{extras-external-centos7,extras} cd /var/www/html/centos/7/extras mv Packages x86_64/ mv repodata x86_64/
|

客户端使用
操作节点:【Centos Stream 8】
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
| mkdir repo.bak mv /etc/yum.repos.d/* repo.bak/
cat > /etc/yum.repos.d/qianyios-external-Centos-Strem-8.repo<<"EOF2" [AppStream-external-Centos-Strem-8] name=AppStream-external-Centos-Strem-8 baseurl=http://192.168.48.128/centos/8-stream/AppStream/x86_64/os/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 enabled=1 [BaseOS-external-Centos-Strem-8] name=BaseOS-external-Centos-Strem-8 baseurl=http://192.168.48.128/centos/8-stream/BaseOS/x86_64/os/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 enabled=1 [extras-external-Centos-Strem-8] name=extras-external-Centos-Strem-8 baseurl=http://192.168.48.128/centos/8-stream/extras/x86_64/os/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 enabled=1 EOF2 yum clean all && yum makecache
[root@qianyi ~]# yum clean all && yum makecache 13 files removed AppStream-external-Centos-Strem-8 205 MB/s | 7.9 MB 00:00 BaseOS-external-Centos-Strem-8 158 MB/s | 2.7 MB 00:00 extras-external-Centos-Strem-8 6.2 MB/s | 18 kB 00:00 Metadata cache created. [root@qianyi ~]#
|
如果他报这个错,你要确保你的extras下的那个路径有没有repodata这个文件夹,或者看看路径对不对

操作节点:【centos7】
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
| mkdir repo.bak mv /etc/yum.repos.d/* repo.bak/
cat > /etc/yum.repos.d/qianyios-external-centos7.repo<<"EOF2" [base-external-centos7] name=BaseOS-external-centos7 baseurl=http://192.168.48.128/centos/7/os/x86_64/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 gpgcheck=1 enabled=1 [extras-external-centos7] name=extras-external-centos7 baseurl=http://192.168.48.128/centos/7/extras/x86_64/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 gpgcheck=1 enabled=1 EOF2 yum clean all && yum makecache
[root@localhost ~]# yum clean all && yum makecache Loaded plugins: fastestmirror, langpacks Cleaning repos: base-external-centos7 extras-external-centos7 Cleaning up list of fastest mirrors Other repos take up 102 M of disk space (use --verbose for details) Loaded plugins: fastestmirror, langpacks Determining fastest mirrors base-external-centos7 | 3.6 kB 00:00:00 extras-external-centos7 | 2.9 kB 00:00:00 (1/7): base-external-centos7/group_gz | 153 kB 00:00:00 (2/7): base-external-centos7/filelists_db | 3.3 MB 00:00:00 (3/7): base-external-centos7/other_db | 1.3 MB 00:00:00 (4/7): base-external-centos7/primary_db | 3.3 MB 00:00:00 (5/7): extras-external-centos7/primary_db | 253 kB 00:00:00 (6/7): extras-external-centos7/filelists_db | 305 kB 00:00:00 (7/7): extras-external-centos7/other_db | 154 kB 00:00:00 Metadata Cache Created [root@localhost ~]#
|
总结
1.你要下那个源仓库,你就走到对应的路径,如果看见repodata文件夹
,那就是这个路径了

2.如果你是本地测试,拉的文件太多很大,你终止了你可能拉不到repodata,所以你可以通过光盘里的scp过去yum server
3.万事都要确定好路径喔,如果repo写错了,你就看看他那个报错的路径下有没有repodata
千屹博客旗下的所有文章,是通过本人课堂学习和课外自学所精心整理的知识巨著
难免会有出错的地方
如果细心的你发现了小失误,可以在下方评论区告诉我,或者私信我!
非常感谢大家的热烈支持!