这篇文章将总结【如何切换MSYS2镜像】,其实比较简单,但还是记录一下吧。
下面示例中附带一个脚本,这样你就不用一个个手动修改了。
1. 镜像服务配置文件
MSYS2 的所有镜像服务配置,都在其安装路径下的etc/pacman.d
目录下
可以看到,每个环境都有独立的镜像配置文件,共有7个文件
可以看到,不同环境的镜像服务域名都一样,只是路径有区别。
这些列表中的第一个 URL 是主镜像,所有其他 URL 将用作 后备。可以通过将另一个镜像移动到顶部来使它成为主镜像
## Primary
下面的两个是官网的主服务器
## Tier 1
下面的是第一层镜像,这些服务有1GBit/s + 的带宽,每天至少同步一次
## Tier 2
下面的是第二层镜像,这些服务定期同步主服务器
建议使用第一层镜像,这里推荐清华的镜像服务 mirrors.tuna.tsinghua.edu.cn
下面的示例也是用清华的镜像服务。
2. 修改主镜像服务配置
共有7个文件要修改
这里写了个脚本(写脚本的时间,手动都改完了,这里是为你们服务,哈哈哈)
随便打开一个环境的bash窗口,执行如下命令即可完成修改。
cyl@DESKTOP-HE90P5G UCRT64 ~
$ cd /etc/pacman.d
cyl@DESKTOP-HE90P5G UCRT64 /etc/pacman.d
$ for file in mirrorlist.*; do wline=$(grep -n 'Primary' mirrorlist.msys | awk -F: '{print $1}'); wcontent=$(grep 'tsinghua' $file); sed -i "${wline}a ${wcontent}" $file; done
验证下是否修改成功
cyl@DESKTOP-HE90P5G UCRT64 /etc/pacman.d
$ head -n 6 mirrorlist.msys
# See https://www.msys2.org/dev/mirrors
## Primary
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/
Server = https://mirror.msys2.org/msys/$arch/
Server = https://repo.msys2.org/msys/$arch/
使用pacman -Scc
清理下缓存,然后重新pacman -Syu
更新下软件仓库。
cyl@DESKTOP-HE90P5G UCRT64 ~
$ pacman -Scc
Cache directory: /var/cache/pacman/pkg/
:: Do you want to remove ALL files from cache? [Y/n] y
removing all files from cache...
Database directory: /var/lib/pacman/
:: Do you want to remove unused repositories? [Y/n] y
removing unused sync repositories...
cyl@DESKTOP-HE90P5G UCRT64 ~
$ pacman -Syu
参考资料:Mirrors - MSYS2