HomeBrew 使用小技巧

2019-03-07  本文已影响75人  tinywell

使用 Mac 开发的同学应该都知道 HomeBrew 这个软件,如果还不知道,那么我推荐你试试。
HomeBrew 是一款用于 macOS 的开源的软件包管理器,它的作用就好比 Ubuntu 的 apt-get 或者 CentOS 的 yum
虽然有了 HomeBrew 之后,在 mac 上安装软件包方便了很多,但在使用时有时候也会有一些困扰,本文记录了笔者在使用中遇到问题后找到了一些小技巧,大大优化了使用体验,分享给大家。

1.更新源

相信很多国内的朋友在使用 HomeBrew 的命令 brew install xxx 安装软件包的时候,一定会遇到命令长时间卡在 brew update 这一条上。是的,由于一些奇怪的网络问题等原因,brew 的源更新非常慢,一般的做法是Ctrl + C 中止掉这一步的执行,brew 会接着执行后面的软件包安装操作。但长此以往并不是根本解决之道。
一次偶然的机会,让我发现了 TUNA 这个牛P的组织以及他们的 清华大学开源软件镜像站- mirrors.tuna.tsinghua.edu.cn。这个镜像站中有非常多的知名开源软件的镜像,HomeBrew 自然在列。
于是,我们要做的就是替换 HomeBrew 原来的软件源为清华的镜像源。

进入自己 mac 的 HomeBrew 安装目录(一般在 /usr/local/HomeBrew),这是一个 git 库,通过 git remote -v 可以看到,其原来的软件源在 https://github.com/Homebrew/homebrew ,我们需要替换为清华的镜像源。

cd /usr/local/HomeBrew
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

cd /usr/local/HomeBrew/Library/Taps/homebrew/homebrew-core
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

brew update

接下来,请自行感受飞一般的 brew update !

替换操作步骤参照清华镜像站的关于 HomeBrew 的使用说明(https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/)

2.可视化软件

使用命令brew的方式操作HomeBrew 安装软件包自然是非常方便而且强大,但是可能有人并不喜欢,他更希望像 App Store 一样,有一个直观的界面,点点点就好。那么,你可以使用 Cakebrew (https://www.cakebrew.com/) 这款软件。

界面如下:

Cakebrew.png

安装、搜索、卸载、更新,一键搞定。

3.安装指定版本

HomeBrew 安装软件包的时候,默认安装最新版本,但是对于开发者来说,一个版本往往是不够的。

仔细翻找了brew 相关的命令,发现并没有与指定版本安装相关的操作,但是如果你安装了某个软件包的不同版本,却是可以查询以及切换的。看来只能找非常规路子了。

观察brew install命令的输出信息可知,当安装某个软件包时,它会首先从brew版本库中找到对应软件的*.rb的安装脚本并下载下来。比如go的话,会先下载https://github.com/Homebrew/homebrew-core/blob/master/Formula/go.rb,在 github 查看这个脚本可知,它的作用是告诉brew从哪儿下载哪个版本的go 软件包。

所以我们要安装某个指定版本的软件包,就需要让 HomeBrew 用我们制定了版本的.rb 脚本去做安装。

基于这个思路,我们尝试在 github 版本的历史中,找到软件包的某个版本的 .rb 脚本,记录其地址。比如我现在需要 go 的 1.11.2 版本,我找到其.rb 脚本在https://raw.githubusercontent.com/Homebrew/homebrew-core/20860a2a6e7ed6de93a9d324d6c86d3b33b871a7/Formula/go.rb。然后我们通过:

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/20860a2a6e7ed6de93a9d324d6c86d3b33b871a7/Formula/go.rb

成功实现对 1.11.2 这个版本的 go软件包的安装。

➜ ~ brew list go
/usr/local/Cellar/go/1.11.2/bin/go
/usr/local/Cellar/go/1.11.2/bin/godoc
/usr/local/Cellar/go/1.11.2/bin/gofmt
/usr/local/Cellar/go/1.11.2/libexec/api/ (15 files)
/usr/local/Cellar/go/1.11.2/libexec/bin/ (3 files)
/usr/local/Cellar/go/1.11.2/libexec/doc/ (152 files)
/usr/local/Cellar/go/1.11.2/libexec/lib/ (3 files)
/usr/local/Cellar/go/1.11.2/libexec/misc/ (394 files)
/usr/local/Cellar/go/1.11.2/libexec/pkg/ (1136 files)
/usr/local/Cellar/go/1.11.2/libexec/src/ (5657 files)
/usr/local/Cellar/go/1.11.2/libexec/test/ (1908 files)
/usr/local/Cellar/go/1.11.2/libexec/ (6 files)
➜ ~ brew list go --versions
go 1.12 1.11.2

4.切换不同版本

当通过 HomeBrew 安装了某个软件包的多个版本时,需要切换不同版本怎么做呢?

➜ ~ brew help switch
Usage: brew switch formula version

Symlink all of the specific version of formula's install to Homebrew prefix.

    -v, --verbose                    Make some output more verbose.
    -d, --debug                      Display any debugging information.
    -h, --help                       Show this message.

还是以go为例:

➜ ~ brew switch go 1.12
Cleaning /usr/local/Cellar/go/1.12
Cleaning /usr/local/Cellar/go/1.11.2
3 links created for /usr/local/Cellar/go/1.12
➜ ~ go version
go version go1.12 darwin/amd64

参考资料

上一篇 下一篇

猜你喜欢

热点阅读