關(guān)于 Homebrew——— 你所要了解的一切

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)慢慢看它的用法了

參考

[1] Homebrew

[2] Homebrew-Cask

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末馋记,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子懊烤,更是在濱河造成了極大的恐慌梯醒,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腌紧,死亡現(xiàn)場(chǎng)離奇詭異茸习,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)壁肋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén)号胚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)籽慢,“玉大人,你說(shuō)我怎么就攤上這事猫胁∠湟冢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵弃秆,是天一觀(guān)的道長(zhǎng)届惋。 經(jīng)常有香客問(wèn)我,道長(zhǎng)菠赚,這世上最難降的妖魔是什么脑豹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮锈至,結(jié)果婚禮上晨缴,老公的妹妹穿的比我還像新娘。我一直安慰自己峡捡,他們只是感情好击碗,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著们拙,像睡著了一般稍途。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上砚婆,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天械拍,我揣著相機(jī)與錄音,去河邊找鬼装盯。 笑死坷虑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的埂奈。 我是一名探鬼主播迄损,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼账磺!你這毒婦竟也來(lái)了芹敌?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤垮抗,失蹤者是張志新(化名)和其女友劉穎氏捞,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體冒版,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡液茎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豁护。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哼凯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出楚里,到底是詐尸還是另有隱情,我是刑警寧澤猎贴,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布班缎,位于F島的核電站,受9級(jí)特大地震影響她渴,放射性物質(zhì)發(fā)生泄漏达址。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一趁耗、第九天 我趴在偏房一處隱蔽的房頂上張望沉唠。 院中可真熱鬧,春花似錦苛败、人聲如沸满葛。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嘀韧。三九已至,卻和暖如春缠捌,著一層夾襖步出監(jiān)牢的瞬間锄贷,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工曼月, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谊却,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓哑芹,卻偏偏與公主長(zhǎng)得像炎辨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绩衷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容