Homebrew 是 OSX 下的包管理器。和 Ubuntu 的 apt-get 類(lèi)似堰怨,如果你用過(guò)勤庐,那么你就會(huì)對(duì) Homebrew 很熟悉。Homebrew 直譯就是“家釀”的意思迫摔,這個(gè)名字是由它的發(fā)起者馬克斯·霍威爾 (Max Howell) 起。Max 最初沒(méi)想到得這個(gè)項(xiàng)目會(huì)火泥从,就很隨意地取了這個(gè)名字。當(dāng)想改的時(shí)候沪摄,已經(jīng)太遲了躯嫉。
一些名詞
第一次接觸 brew 的時(shí)候纱烘,其中的一些名詞會(huì)讓人有些迷惑。就像初遇 git 祈餐,看到 branch擂啥、head、commit 等名詞時(shí)的感覺(jué)(what帆阳?這到底是個(gè)啥哺壶?)。下面來(lái)一探究竟蜒谤。
formula
直譯就是“公式”山宾,這樣翻譯有些太生硬。還是直接叫它 formula鳍徽∽拭蹋可以簡(jiǎn)單理解為一個(gè)軟件包。
在路徑 /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/foo.rb
下可以看到 formula 的定義阶祭。
formula 定義了一個(gè)軟件包绷杜。包括了這個(gè)軟件的,依賴(lài)濒募、源碼位置及編譯方法等
下面就是我們常用的 vim 這個(gè)命令的 formula (省略版):
class Vim < Formula
desc "Vi \"workalike\" with many additional features"
homepage "http://www.vim.org/"
url "https://github.com/vim/vim/archive/v8.0.0596.tar.gz"
sha256 "b83c5a1f70c337afade89fbcaa3d5f80f0408a8bb71345f2d8ba5f992eba7752"
head "https://github.com/vim/vim.git"
...
depends_on :python => :recommended
depends_on :python3 => :optional
...
depends_on "gettext" => :optional
...
end
keg
formula 安裝的前綴路徑
/usr/local/Cellar/foo/0.1
opt prefix
在 formula 在 /usr/local/Cellar/foo/0.1
中安裝好后鞭盟,brew 會(huì)創(chuàng)建在 /usr/bin/opt/
目錄下建立對(duì)應(yīng)的鏈接 ( 也就是 opt prefix )
waydeMBP:opt waywee$ ls -al /usr/local/Cellar/
total 0
drwxrwxr-x 5 waywee admin 170 5 11 15:14 .
drwxr-xr-x 15 root wheel 510 5 10 21:58 ..
drwxr-xr-x 3 waywee admin 102 5 11 14:42 global
drwxr-xr-x 3 waywee admin 102 5 11 15:14 pstree
drwxr-xr-x 3 waywee admin 102 5 11 15:09 tree
waydeMBP:opt waywee$ ls -al /usr/local/opt/
total 24
drwxrwxr-x 5 waywee admin 170 5 11 15:14 .
drwxr-xr-x 15 root wheel 510 5 10 21:58 ..
lrwxr-xr-x 1 waywee admin 22 5 11 14:42 global -> ../Cellar/global/6.5.6
lrwxr-xr-x 1 waywee admin 21 5 11 15:14 pstree -> ../Cellar/pstree/2.39
lrwxr-xr-x 1 waywee admin 20 5 11 15:09 tree -> ../Cellar/tree/1.7.0
cellar
/usr/local/Cellar
keg 的安裝路徑
tap
一個(gè)包含 formula 的 git 倉(cāng)庫(kù)
cask
homebrew 的一個(gè)擴(kuò)展,用來(lái)安裝 GUI 的 macOS app瑰剃。
bottle
homebrew 提供的已經(jīng)編譯好的 formula齿诉。這些 bottle 可以在這里看到。在大部分的情況下培他,執(zhí)行
brew install <formulae>
都會(huì)優(yōu)先選擇預(yù)先編譯好的 bottle 來(lái)安裝鹃两。
有一些例外,
- 帶有選項(xiàng) --enable-bar 會(huì)觸發(fā)源碼編譯
- 帶有選項(xiàng) --build-from-source
- 設(shè)置了環(huán)境變量 HOMEBREW_BUILD_FROM_SOURCE
- bottle 不支持當(dāng)前系統(tǒng)版本舀凛,重新編譯
- Homebrew 被安裝在非 /usr/local 前綴路徑
關(guān)于 brew install 和 brew cask install
brew install
主要用于安裝命令行程序
我們來(lái)安裝一個(gè)查看目錄結(jié)構(gòu)命令
$ brew install tree
brew cask install
主要用于安裝圖形(GUI)app
$ brew install caskroom/cask/brew-cask
$ brew cask install google-chrome // 安裝 Google 瀏覽器
$ brew update && brew upgrade brew-cask && brew cleanup // 更新
在安裝完 app 后俊扳,會(huì)自動(dòng)把 app 鏈接到 Application 文件夾
幾點(diǎn)注意事項(xiàng)
- Homebrew 不建議使用 sudo
在了解了這些基本概念之后,就可以愉快地 man 一下 brew猛遍,來(lái)慢慢看它的用法了