Homebrew多镜像切换,个数不限(可自定义)

命令说明

Mac终端敲入以下命令即可永久切换镜像
切换到阿里源:switch_brew_mirror 1
切换到清华源:switch_brew_mirror 2
切换到科大源:switch_brew_mirror 3
重置为官方地址:switch_brew_mirror 0
切换自定义镜像:switch_brew_mirror xxx

添加自定义镜像的方法

只需将有效的 url 写入 MIRROR_URLS 的 xxx 下,之后就可以使用命令switch_brew_mirror xxx进行切换。如下所示

my %MIRROR_URLS    = (  
    aliyun => {},  
    tsinghua => {},  
    ustc => {},  
    xxx => {  
        HOMEBREW_API_DOMAIN => "Valid URL1",  
        HOMEBREW_BOTTLE_DOMAIN => "Valid URL2",  
        HOMEBREW_BREW_GIT_REMOTE => "Valid URL3",  
        HOMEBREW_CORE_GIT_REMOTE => "Valid URL4",}  
);  

安装方法

无需安装,步骤如下:
1、将 .switch_brew_mirror.pl 脚本放入用户的 $HOME 目录;
2、编辑 $HOME/.zprofile 文件,末尾添加以下3行代码即可

switch_brew_mirror() {
    eval "$(perl ~/.switch_brew_mirror.pl "$1")"
}; switch_brew_mirror

Mac终端测试结果如下

Last login: Wed Mar 27 10:57:45 on ttys002
~ > echo $HOMEBREW_BREW_GIT_REMOTE
mirrors.tuna.tsinghua.edu.cn/git/h...
~ >
~ > switch_brew_mirror 0
Using Homebrew default URL.
~ > echo $HOMEBREW_BREW_GIT_REMOTE

~ > switch_brew_mirror alibb
Invalid parameter alibb. Usage: switch_brew_mirror [0|aliyun|tsinghua|ustc]
~ >
~ > switch_brew_mirror aliyun
Switched to aliyun mirror.
~ > echo $HOMEBREW_BREW_GIT_REMOTE
mirrors.aliyun.com/homebrew/brew.g...
~ >
~ > switch_brew_mirror 2
Switched to tsinghua mirror.
~ > echo $HOMEBREW_BREW_GIT_REMOTE
mirrors.tuna.tsinghua.edu.cn/git/h...
~ >

为什么使用 perl 脚本

一开始是打算用shell脚本来实现这个功能的,但是发现 source 命令加载shell脚本后,所有的函数都直接暴露到终端了。改用perl后就没这问题了,用户只需调用、也只能调用一个名为 switch_brew_mirror 的函数。

镜像资料

阿里镜像 developer.aliyun.com/mirror/homebr...
清华镜像 mirrors.tuna.tsinghua.edu.cn/help/...
科大源 mirrors.ustc.edu.cn/help/brew.git....
Homebrew brew.sh

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
63
粉丝
17
喜欢
140
收藏
118
排名:132
访问:7.4 万
私信
所有博文
社区赞助商