学习笔记-更换国内镜像源 - CentOS
前言摘要
# 进提供 目前还在使用的 CentOS 版本及替代版本 RockyOS 的源信息
# 版本涵盖
CentOS 7
RokcyOS 9
CentOS 8
CentOS Stream
CentOS 6
# 镜像源 提供 四个版本,更多源可参考镜像源列表文档
清华大学 镜像源
北京大学 镜像源 (因为清华大学不提供RokcyOS源)
阿里云 镜像源
校园网联合 镜像源
# 为方便操作,全部采用各个镜像源官方脚本
# 文末,提供了 CentOS 7 及 RockyOS 9 的镜像源一键替换脚本
CentOS 7
CentOS 7 更换 清华大学 镜像源
# CentOS 7 更换 清华大学 镜像源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
# 重建软件包缓存
yum clean all && yum makecache
CentOS 7 更换 阿里云 镜像源
# CentOS 7 更换 阿里云 镜像源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.BAK
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 重建软件包缓存
yum clean all && yum makecache
CentOS 7 更换 校园网联合 镜像源
# CentOS 7 更换 校园网联合 镜像源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.cernet.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
# 重建软件包缓存
yum clean all && yum makecache
RockyOS 9
RockyOS 9 更换 北京大学 镜像源
# RockyOS 9 更换 北京大学 镜像源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.pku.edu.cn/rocky|g' \
-i.bak \
/etc/yum.repos.d/rocky-extras.repo \
/etc/yum.repos.d/rocky.repo
# 重建软件包缓存
dnf clean all && dnf makecache
RockyOS 9 更换 阿里云 镜像源
# RockyOS 9 更换 阿里云 镜像源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/Rocky-*.repo
# 重建软件包缓存
dnf clean all && dnf makecache
RockyOS 9 更换 校园网联合 镜像源
# RockyOS 9 更换 校园网联合 镜像源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.cernet.edu.cn/rocky|g' \
-i.bak \
/etc/yum.repos.d/rocky-extras.repo \
/etc/yum.repos.d/rocky.repo
# 重建软件包缓存
dnf clean all && dnf makecache
CentOS 8
CentOS 8 更换 清华大学 镜像源
# CentOS 8 更换 清华大学 镜像源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
# 重建软件包缓存
yum clean all && yum makecache
CentOS 8 更换 阿里云 镜像源
# CentOS 8 更换 阿里云 镜像源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.BAK
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
# 重建软件包缓存
yum clean all && yum makecache
CentOS 8 更换 校园网联合 镜像源
# CentOS 8 更换 校园网联合 镜像源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.cernet.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
# 重建软件包缓存
yum clean all && yum makecache
CentOS Stream
CentOS Stream 更换 清华大学 镜像源
# CentOS Stream 更换 清华大学 镜像源
# 创建 修改脚本
cat <<'EOF' > /tmp/update_mirror.pl
#!/usr/bin/perl
use strict;
use warnings;
use autodie;
my $mirrors = 'https://mirrors.tuna.tsinghua.edu.cn/centos-stream';
if (@ARGV < 1) {
die "Usage: $0 <filename1> <filename2> ...\n";
}
while (my $filename = shift @ARGV) {
my $backup_filename = $filename . '.bak';
rename $filename, $backup_filename;
open my $input, "<", $backup_filename;
open my $output, ">", $filename;
while (<$input>) {
s/^metalink/# metalink/;
if (m/^name/) {
my (undef, $repo, $arch) = split /-/;
$repo =~ s/^\s+|\s+$//g;
($arch = defined $arch ? lc($arch) : '') =~ s/^\s+|\s+$//g;
if ($repo =~ /^Extras/) {
$_ .= "baseurl=${mirrors}/SIGs/\$releasever-stream/extras" . ($arch eq 'source' ? "/${arch}/" : "/\$basearch/") . "extras-common\n";
} else {
$_ .= "baseurl=${mirrors}/\$releasever-stream/$repo" . ($arch eq 'source' ? "/" : "/\$basearch/") . ($arch ne '' ? "${arch}/tree/" : "os") . "\n";
}
}
print $output $_;
}
}
EOF
# 运行 修改脚本
perl /tmp/update_mirror.pl /etc/yum.repos.d/centos*.repo
# 重建软件包缓存
yum clean all && yum makecache
CentOS Stream 更换 阿里云 镜像源
# CentOS Stream 更换 阿里云 镜像源
# 创建 修改脚本
cat <<'EOF' > /tmp/update_mirror.pl
#!/usr/bin/perl
use strict;
use warnings;
use autodie;
my $mirrors = 'https://mirrors.aliyun.com/centos-stream/';
if (@ARGV < 1) {
die "Usage: $0 <filename1> <filename2> ...\n";
}
while (my $filename = shift @ARGV) {
my $backup_filename = $filename . '.bak';
rename $filename, $backup_filename;
open my $input, "<", $backup_filename;
open my $output, ">", $filename;
while (<$input>) {
s/^metalink/# metalink/;
if (m/^name/) {
my (undef, $repo, $arch) = split /-/;
$repo =~ s/^\s+|\s+$//g;
($arch = defined $arch ? lc($arch) : '') =~ s/^\s+|\s+$//g;
if ($repo =~ /^Extras/) {
$_ .= "baseurl=${mirrors}/SIGs/\$releasever-stream/extras" . ($arch eq 'source' ? "/${arch}/" : "/\$basearch/") . "extras-common\n";
} else {
$_ .= "baseurl=${mirrors}/\$releasever-stream/$repo" . ($arch eq 'source' ? "/" : "/\$basearch/") . ($arch ne '' ? "${arch}/tree/" : "os") . "\n";
}
}
print $output $_;
}
}
EOF
# 运行 修改脚本
perl /tmp/update_mirror.pl /etc/yum.repos.d/centos*.repo
# 重建软件包缓存
yum clean all && yum makecache
CentOS Stream 更换 校园网联合 镜像源
# CentOS Stream 更换 校园网联合 镜像源
# 创建 修改脚本
cat <<'EOF' > /tmp/update_mirror.pl
#!/usr/bin/perl
use strict;
use warnings;
use autodie;
my $mirrors = 'https://mirrors.cernet.edu.cn/centos-stream';
if (@ARGV < 1) {
die "Usage: $0 <filename1> <filename2> ...\n";
}
while (my $filename = shift @ARGV) {
my $backup_filename = $filename . '.bak';
rename $filename, $backup_filename;
open my $input, "<", $backup_filename;
open my $output, ">", $filename;
while (<$input>) {
s/^metalink/# metalink/;
if (m/^name/) {
my (undef, $repo, $arch) = split /-/;
$repo =~ s/^\s+|\s+$//g;
($arch = defined $arch ? lc($arch) : '') =~ s/^\s+|\s+$//g;
if ($repo =~ /^Extras/) {
$_ .= "baseurl=${mirrors}/SIGs/\$releasever-stream/extras" . ($arch eq 'source' ? "/${arch}/" : "/\$basearch/") . "extras-common\n";
} else {
$_ .= "baseurl=${mirrors}/\$releasever-stream/$repo" . ($arch eq 'source' ? "/" : "/\$basearch/") . ($arch ne '' ? "${arch}/tree/" : "os") . "\n";
}
}
print $output $_;
}
}
EOF
# 运行 修改脚本
perl /tmp/update_mirror.pl /etc/yum.repos.d/centos*.repo
# 重建软件包缓存
yum clean all && yum makecache
CentOS 6
CentOS 6 更换 清华大学 镜像源
# CentOS 6 更换 清华大学 镜像源
sed -e "s|^mirrorlist=|#mirrorlist=|g" \
-e "s|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.10|g" \
-e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.10|g" \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
# 重建软件包缓存
yum clean all && yum makecache
CentOS 6 更换 阿里云 镜像源
# CentOS 6 更换 阿里云 镜像源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.BAK
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo
# 重建软件包缓存
yum clean all && yum makecache
CentOS 6 更换 校园网联合 镜像源
# CentOS 6 更换 校园网联合 镜像源
# 其中 $minorver 表示版本号,需要自行替换
sed -e "s|^mirrorlist=|#mirrorlist=|g" \
-e "s|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=https://mirrors.cernet.edu.cn/centos-vault/$minorver|g" \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
# 重建软件包缓存
yum clean all && yum makecache
CentOS 7 一键替换脚本
# 全文复制 直接运行
# 覆盖 CentOS 7 Repo 文件
cat <<'EOF' > /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
# CentOS 7 更换 校园网联合 镜像源 专用 Repo 文件
# author: SRover Lee
[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.cernet.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.cernet.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.cernet.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.cernet.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
EOF
# 重建软件包缓存
yum clean all && yum makecache# 全文复制 直接运行
# 覆盖 CentOS 7 Repo 文件
cat <<'EOF' > /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
# CentOS 7 更换 校园网联合 镜像源 专用 Repo 文件
# author: SRover Lee
[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.cernet.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.cernet.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.cernet.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.cernet.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
EOF
# 重建软件包缓存
yum clean all && yum makecache
Rocky OS 9 一键替换脚本
# 全文复制 直接运行
# 覆盖 RockyOS 9 Repo 文件
cat <<'EOF' > /etc/yum.repos.d/CentOS-Base.repo
# rocky.repo
# CentOS-Base.repo
# CentOS 9 更换 校园网联合 镜像源 专用 Repo 文件
# author: SRover Lee
[baseos]
name=Rocky Linux $releasever - BaseOS
baseurl=https://mirrors.cernet.edu.cn/rocky/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
countme=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
[appstream]
name=Rocky Linux $releasever - AppStream
baseurl=https://mirrors.cernet.edu.cn/rocky/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
countme=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9