Homebrew 的安装与使用

与 MacPorts 类似,OS X 下还有款包管理工具为 [Homebrew][1],安装方法也很简单。

   [1]: http://brew.sh

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

好了,安装完毕,Homebrew 的使用方法也很简单。

基本用法

具体的用法可以 man brew

brew search formula

这里主要说下,brew search formula 时有时会出现

Error: GitHub API rate limit exceeded for ip. See http://developer.github.com/v3/#rate-limiting for details. You may want to create an API token: http://github.com/settings/applications and then set HOMEBREW_GITHUB_API_TOKEN.

提示已经很明确了,按照说明照做,注册个 github 账号,打开页面 http://github.com/settings/applications. 点击 Create new token,填入 Token descrption 后,点击 Create Token

Create new token

Personal Access Tokens

在家目录的 ~/.bash_profile 中添加如下你申请到的 token

if [ -f /usr/local/bin/brew ]; then
    export HOMEBREW_GITHUB_API_TOKEN=xxxxxxxxxx
fi

最后再 . ~/.bash_profile 更新下你的环境变量。

多版本共存

另外一个,安装不同版本的 formula 的技巧,比方要安装不同版本的 htop

$ brew versions htop                        # 显示 htop 的历史版本
Warning: brew-versions is unsupported and may be removed soon.
Please use the homebrew-versions tap instead:
  https://github.com/Homebrew/homebrew-versions
  0.8.2.2  git checkout 43b7f5b Library/Formula/htop-osx.rb
  0.8.2.1  git checkout 8e24412 Library/Formula/htop-osx.rb
  2012-0   git checkout 174acd6 Library/Formula/htop-osx.rb
  0.8.2.1-2012-04-18 git checkout 258c649 Library/Formula/htop-osx.rb
......
......
$ cd /usr/local
$ git checkout -b htop0.8.2.1 8e24412       # checkout 出历史版本
Switched to a new branch 'htop0.8.2.1'
^_^ /usr/local $ git branch
* htop0.8.2.1
  master
$ brew unlink htop
Unlinking /usr/local/Cellar/htop-osx/0.8.2.2... 4 links removed
......
......
^_^ /usr/local $ brew install htop          # 安装旧版本
==> Installing htop-osx
==> Downloading https://github.com/max-horvath/htop-osx/archive/0.8.2.1-2013-03-31.tar.gz
......
......
^_^ /usr/local $ ls /usr/local/Cellar/htop-osx/
0.8.2.1 0.8.2
......
......
^_^ /usr/local $ htop --version
htop 0.8.2.1 - (C) 2004-2008 Hisham Muhammad.
Released under the GNU GPL.

^_^ /usr/local $ brew switch htop 0.8.2.2   # 切换 htop 版本
Cleaning /usr/local/Cellar/htop-osx/0.8.2.1
Cleaning /usr/local/Cellar/htop-osx/0.8.2.2
4 links created for /usr/local/Cellar/htop-osx/0.8.2.2
^_^ /usr/local $ htop --version
htop 0.8.2.2 - (C) 2004-2008 Hisham Muhammad.
Released under the GNU GPL.
......
......
^_^ /usr/local $ brew switch htop 0.8.2.1   # 删除某版本的话,先版本切换,再删除,最后版本切换回来
Cleaning /usr/local/Cellar/htop-osx/0.8.2.1
4 links created for /usr/local/Cellar/htop-osx/0.8.2.1
^_^ /usr/local $ brew remove htop
Uninstalling /usr/local/Cellar/htop-osx/0.8.2.1...

其实就是 Homebrew 对 git 分支的灵活应用。

删除 formula 时删除依赖

$ brew remove formula
$ brew rm $(join <(brew leaves) <(brew deps formula))

Homebrew Cask

通过 homebrew cask 来安装 app,首先是安装

$ brew tap caskroom/cask

默认 homebrew cask 安装 app 至 /opt/homebrew-cask/Caskroom 下,并链接到 ~/Applications 目录。

配置下,让 app 链接至 ~/My Applications

$ mkdir ~/My\ Applications
$ touch ~/My\ Applications/.localized
$ echo 'export HOMEBREW_CASK_OPTS="--appdir=~/My\ Applications"' >> ~/.bash_profile
$ source ~/.bash_profile

然后随便安装了

$ brew cask search firefox
$ brew cask install firefox-esr-cn

重新安装

这个可以参考池建强在微博和微信里的文章,我把代码部分引用如下:

cd brew --prefix ##找到Homebrew,一般是/usr/local
mv Cellar /tmp ##备份用过 Homebrew 安装的程序包和库
brew prune ##删除无效 Link
rm -r git ls-files ##删除 Git 信息
rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions
rm -rf .git
rm -rf ~/Library/Caches/Homebrew ##删除缓存

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ##然后重新安装 Homebrew
brew update
mv /tmp/Cellar . ##把备份的程序复制回来,更新所有程序
brew update
brew upgrade
从我的实际经验来看,建议大家在上面脚本的最后还是运行一下brew doctor,可能会发现一些link方面的问题,根据提示处理就可以了。这些操作都做完以后,HomeBrew里的组件应该都已经OK。

(完)
comments powered by Disqus
Powered by GitHub  &&  Jekyll | CC BY-NC-SA