本文前驅(qū)鋪墊梳理了從 linux 源碼安裝軟件到 DPKG/RPM 軟件包管理機(jī)制谋竖,闡述了 *UNX 平臺(tái)的軟件安裝包管理機(jī)制的演變和現(xiàn)代化仿耽。
后半部分介紹了 Mac 下的軟件安裝包格式 —— pkg & dmg穆趴,以及軟件包管理工具 —— brew 及 brew-cask次绘,并梳理日常 Command Usage荠列。
linux 軟件的安裝與管理
linux 是一套免費(fèi)使用和自由傳播的基于 POSIX 和 UNIX 的多用戶(hù)沫换、多任務(wù)臭蚁、支持多線程和多 CPU 的開(kāi)源的類(lèi) Unix 操作系統(tǒng)。
由于 linux 操作系統(tǒng)開(kāi)放源代碼讯赏,因而在其上安裝的大部分也都是開(kāi)源軟件垮兑。開(kāi)源軟件的開(kāi)發(fā)者往往僅需在開(kāi)源代碼托管平臺(tái)上發(fā)布一份源碼包,用戶(hù)即可自由下載源碼包到本地漱挎,基于源碼包編譯安裝軟件系枪。這倒是非常符合 C 語(yǔ)言的設(shè)計(jì)哲學(xué):一次編寫(xiě),到處編譯磕谅。
基于源碼安裝軟件
基于源碼安裝軟件一般由以下幾個(gè)步驟組成:
- 下載解壓源碼
- 閱讀 README私爷、INSTALL 等說(shuō)明文檔,這一步至關(guān)重要
- 分析安裝平臺(tái)環(huán)境(ifconfigure)
- 編譯安裝軟件(make膊夹,make install)
基于源代碼安裝軟件的好處是:用戶(hù)可以自由配置編譯選項(xiàng)衬浑,按需編譯實(shí)現(xiàn)功能定制,極大地滿(mǎn)足個(gè)性化需求放刨。此外工秩,用戶(hù)還可以自己選擇安裝路徑,方便管理。卸載軟件也很方便助币,只需刪除對(duì)應(yīng)的安裝目錄即可浪听。
但是,配置奠支、編譯命令需要了解操作系統(tǒng)本身馋辈,并且依賴(lài)開(kāi)源項(xiàng)目所使用的編程語(yǔ)言對(duì)應(yīng)的工具鏈。為了使用一個(gè)應(yīng)用軟件倍谜,用戶(hù)需要熟悉 linux 系統(tǒng)的文件組織架構(gòu)和一堆 Shell 交互命令迈螟,還得解決編譯過(guò)程中可能涉及到的繁雜的依賴(lài)關(guān)系。一定的英文水平也是必需的尔崔,關(guān)鍵是要有折騰不息的精神和頑強(qiáng)的動(dòng)手能力答毫!
English、OS季春、Linux洗搂、命令行交互方式、…载弄,這些令人望而卻步的門(mén)檻足以將普通用戶(hù)拒之門(mén)外耘拇。安裝后,你可能都不知道安裝到哪里去了宇攻;甚至離開(kāi)了 Windows 桌面惫叛,你都不知道從哪里啟動(dòng)軟件。我依稀地記得剛接觸 linux 那會(huì)兒逞刷,為了能在 linux 上播放個(gè)視頻文件嘉涌,廢了老大勁才安裝好一個(gè) MPlayer。當(dāng)時(shí)就森森地覺(jué)得 linux 真不是一般人能折騰得起夸浅,盡管現(xiàn)在已經(jīng)折騰慣了仑最,但依然覺(jué)得費(fèi)腦傷神。
作為一個(gè)曾經(jīng)的計(jì)算機(jī)旁系學(xué)生(自動(dòng)化帆喇,別名計(jì)算機(jī)控制)警医、現(xiàn)在的半職業(yè)化軟件攻城獅(涉獵甚廣,淺顯浮泛)和偽自由軟件追崇者(用過(guò)盜版坯钦,不懂破解法严,從無(wú)貢獻(xiàn)),因?yàn)楣ぷ麝P(guān)系經(jīng)常穿梭于 Windows 和 Mac OS X 之間(游離其間葫笼,無(wú)所專(zhuān)精),不折騰下 Linux/Unix 都覺(jué)得沒(méi)法混 github拗馒。
盡管對(duì)于 vim 鍵盤(pán)型用戶(hù)(估計(jì)基本都是程序員吧)路星,很喜歡那種游離于指尖的”自由感”,但對(duì)于普通鼠標(biāo)型 Windows 用戶(hù),若無(wú)力駕馭洋丐,自由便是負(fù)擔(dān)呈昔。
只有開(kāi)發(fā)人員才需要學(xué)習(xí)一個(gè)操作系統(tǒng)本身,用戶(hù)只需要學(xué)習(xí)操作系統(tǒng)里面的每個(gè)“應(yīng)用程序”怎么使用友绝。
—— Linus Torvalds
DPKG / RPM
伴隨著 linux 的發(fā)展普及堤尾,linux 開(kāi)發(fā)商開(kāi)始在固定的硬件平臺(tái)與操作系統(tǒng)上將要安裝或升級(jí)的軟件編譯好,然后將這個(gè)軟件的所有相關(guān)文件打包成一個(gè)特殊格式的文件迁客。在這個(gè)軟件內(nèi)郭宝,還包含了預(yù)先檢測(cè)系統(tǒng)與依賴(lài)軟件(或動(dòng)態(tài)鏈接庫(kù))的腳本,并提供記載該軟件提供的所有文件信息等掷漱,最終將這個(gè)軟件發(fā)布粘室。
客戶(hù)端取得軟件后,只要通過(guò)特定的命令來(lái)安裝卜范,那么該軟件就會(huì)按照內(nèi)部的腳本來(lái)檢測(cè)相關(guān)的前驅(qū)軟件是否存在衔统。若安裝的環(huán)境和條件符合要求,則開(kāi)始安裝海雪。軟件在安裝完成后锦爵,還會(huì)將信息寫(xiě)入軟件管理機(jī)制中,以便完成未來(lái)的升級(jí)奥裸、刪除(反安裝)等操作险掀。
目前,在 Linux 界最常見(jiàn)的軟件安裝方式有兩種:
-
DPKG
-
DPKG(Debian Packager)是由 Debian Linux 社區(qū)所開(kāi)發(fā)出來(lái)的刺彩,著名的
package
概念由此被引入到 GNU/Linux 系統(tǒng)中迷郑。 - 通過(guò) DPKG 機(jī)制,Debian 提供的軟件就能夠簡(jiǎn)單安裝起來(lái)创倔,同時(shí)還能提供安裝后的軟件信息嗡害。派生于 Debian 的其他 Linux Distributions 大多使用 dpkg 機(jī)制來(lái)管理軟件,包括 B2D畦攘、Ubuntu霸妹、Linux Mint 等。
- Debian 為解決軟件包更新問(wèn)題知押,引入了 APT(Advanced Package Tool)在線升級(jí)機(jī)制叹螟,并在
/etc/apt/sources.list
文件列出了可獲得軟件包的鏡像站點(diǎn)地址。- APT 由幾個(gè)名字以
apt-
打頭的程序組成台盯,apt-get罢绽、apt-cache 和 apt-cdrom 是處理軟件包的命令行工具。 - apt 作為 dpkg 的前端工具静盅,自動(dòng)管理關(guān)聯(lián)文件和維護(hù)已有配置文件良价,擁有出色的解決軟件依賴(lài)問(wèn)題的能力。
- APT 由幾個(gè)名字以
-
DPKG(Debian Packager)是由 Debian Linux 社區(qū)所開(kāi)發(fā)出來(lái)的刺彩,著名的
-
RPM
- RPM(RedHat Package Manager)是由 Red Hat 公司所開(kāi)發(fā)出來(lái)的軟件包管理程序。除了可以用來(lái)安裝(-i)外明垢,還可以進(jìn)行查詢(xún)(-q)蚣常、驗(yàn)證(-V)、更新(-U)痊银、刪除(-e)等操作抵蚊,這些功能選項(xiàng)讓軟件的管理更加方便。包括 Fedora溯革、CenterOS贞绳、SUSE/openSUSE 等知名的 linux 發(fā)行版本都使用 RPM 作為軟件安裝的管理機(jī)制。
- RPM 包的封裝格式一般有兩種鬓照,分別是 RPM 和 SRPM熔酷。RPM 格式的文件
xxx.rpm
內(nèi)含已經(jīng)經(jīng)過(guò)編譯的二進(jìn)制包和配置文件等數(shù)據(jù)。SRPM(Source RPM)對(duì)應(yīng)的 RPM 文件類(lèi)似于xxx.src.rpm
格式豺裆,它包含了源碼文件和一些編譯指定的參數(shù)文件拒秘。因而,在使用的時(shí)候臭猜,需要先以 RPM 管理的方式編譯為 RPM 文件(rpmbuild躺酒,再將編譯完成的 RPM 文件安裝到 Linux 系統(tǒng)中。 - RPM 無(wú)法自動(dòng)解決軟件的依賴(lài)關(guān)系蔑歌,使用與 APT 對(duì)應(yīng)的 YUM (Yellowdog Updater Modified) 機(jī)制可以解決屬性依賴(lài)問(wèn)題羹应。YUM 作為基于 RPM 的 Shell 前端軟件包管理器,主要用于自動(dòng)升級(jí)次屠、安裝/移除 RPM 軟件包园匹。它能夠自動(dòng)查找并解決 RPM 包之間的依賴(lài)關(guān)系,而無(wú)需管理員逐個(gè)手工的去安裝每一個(gè) RPM 包劫灶。
Distribution 代表 | 包管理機(jī)制 | 使用命令 | 在線升級(jí)機(jī)制(命令) |
---|---|---|---|
Red Hat / Fedora | RPM | rpm裸违,rpmbuild | YUM(yum) |
Debian / Ubuntu | DPKG | dpkg | APT(apt-get) |
在 linux 眾多發(fā)行版中,ubuntu 占領(lǐng)桌面本昏,RHEL/CentOS 占領(lǐng)服務(wù)器供汛,比較小眾的 Gentoo 采用獨(dú)特的 Portage 包管理系統(tǒng)。Gentoo 的軟件樹(shù)稱(chēng)為 Portage涌穆,對(duì)應(yīng)的包管理器是 emerge怔昨,包元文件稱(chēng)為 ebuild。
Gentoo 是個(gè)強(qiáng)調(diào)能自由選擇的分發(fā)版宿稀,它使用源碼來(lái)做包管理的方式趁舀。由于能自己編譯及調(diào)整源碼依賴(lài)等選項(xiàng),而獲得至高的自定義性及優(yōu)化的軟件祝沸,在源碼包也有相當(dāng)多新舊版本的選擇赫编,因此吸引了許多狂熱愛(ài)好者以及專(zhuān)業(yè)人士巡蘸。
RPM / SRPM
RPM 軟件包命名規(guī)范:name-version-release.arch.rpm
。
其中擂送,version
表示系統(tǒng)的發(fā)行版,如 fc18唯欣、el6 表明這個(gè)軟件包是在 Fedora 18嘹吨、RHEL 6.x / CentOS 6.x 下使用的;arch
表示硬件平臺(tái)境氢,常見(jiàn)的有 i386蟀拷、x86_64 等。
rp-pppoe-3.1-5.i386.rpm
是一個(gè)典型的 RPM 安裝包萍聊,它由幾個(gè)部分構(gòu)成:
-
rp-pppoe
:名稱(chēng) -
3.1
:版本信息 -
5
:發(fā)布次數(shù) -
.i386
:適合的硬件平臺(tái) -
.rpm
:擴(kuò)展名
RPM 文件必須要在相同的 linux 環(huán)境才能安裝问芬,而 SRPM 是源代碼格式。我們可以通過(guò)修改 SRAM 內(nèi)的參數(shù)寿桨,按需編譯生成適合我們 linux 環(huán)境的 RPM 文件此衅,而不必與原作者打包的 Linux 環(huán)境相同。
通常一個(gè)軟件在發(fā)布的時(shí)候亭螟,都會(huì)同時(shí)釋放出該軟件的 RPM 與 SRPM挡鞍。
文件格式 | 擴(kuò)展名格式 | 直接安裝與否 | 內(nèi)含程序類(lèi)型 | 可否修改參數(shù)并編譯 |
---|---|---|---|---|
RPM | xxx.rpm |
√ | 已編譯 | × |
SRPM | xxx.src.rpm |
× | 未編譯的源碼 | √ |
RPM 建包的原理并不復(fù)雜,可以理解為按照標(biāo)準(zhǔn)的格式整理一些信息预烙,包括:軟件基礎(chǔ)信息墨微,以及安裝、卸載前后執(zhí)行的腳本扁掸,對(duì)源碼包解壓翘县、打補(bǔ)丁、編譯谴分,安裝路徑和文件等锈麸。我們可以基于標(biāo)準(zhǔn)規(guī)范,來(lái)使用 rpmbuild 制作自己的 RPM 包狸剃。
Mac 軟件包管理工具
linux 平臺(tái)下的 apt-get 和 yum 命令行工具分別適用于 deb掐隐、rpm 包管理方式的發(fā)行版本,主要用于自動(dòng)從互聯(lián)網(wǎng)的軟件倉(cāng)庫(kù)中搜索钞馁、安裝虑省、升級(jí)和卸載軟件。在 Mac OS X 平臺(tái)下僧凰,除了直接從 AppleStore 下載認(rèn)證上架的軟件進(jìn)行安裝外探颈,還可以在系統(tǒng)偏好設(shè)置的【安全性與隱私】中允許從任何來(lái)源下載的應(yīng)用。
dmg & pkg
一些應(yīng)用會(huì)提供 dmg训措、pkg 安裝包伪节,例如 git-2.5.3-intel-universal-mavericks.dmg
光羞、Subversion-1.9.2_10.10.x.pkg
。
dmg 是蘋(píng)果的壓縮鏡像文件(類(lèi)似 Windows 下的 iso )怀大,它是 Mac 應(yīng)用軟件通用的打包格式(相當(dāng)于 ipa)纱兑,里面一般包含
應(yīng)用程序.app
的圖標(biāo)和一個(gè)應(yīng)用程序文件夾(/Applications
)快捷方式,直接將應(yīng)用程序.app
拖曳至應(yīng)用程序文件夾即可完成安裝化借。卸載也同樣綠色潜慎,直接在Launchpad
中或 cd 到/Applications
目錄下刪除應(yīng)用(文件夾)即可。pkg 屬于系統(tǒng)級(jí)軟件的安裝程序蓖康,相當(dāng)于 iOS 越獄后裝的 deb铐炫,一般會(huì)修改系統(tǒng)配置,權(quán)限較高蒜焊。pkg 安裝一般要求 sudo 授權(quán)倒信,卸載 pkg 安裝的應(yīng)用 也比較麻煩。pkg 類(lèi)似 Windows 下的安裝程序 Setup.exe 和 *.msi泳梆。
Windows 下可以使用 Install Shield 來(lái) 制作安裝程序鳖悠,可使用 Xcode 自帶的 PackageMaker 或打包命令行工具 pkgbuild+productbuild+pkgutil 或 Iceberg(an Integrated Packaging Environment (IPE) )來(lái)制作安裝包。-
mpkg:pkg 是單個(gè)應(yīng)用程序的安裝包鸭丛,而 mpkg(multi pkg)是多個(gè) pkg 竞穷。我們來(lái)看一下從 AppleStore 下載的 OS X EI Capitan 安裝器文件——
安裝 OS X EI Capitan.app
的/Contents/SharedSupport
目錄:<figure class="highlight" style="display: block; margin: 20px 0px; background-color: rgb(0, 36, 81); padding: 15px; overflow: auto; font-size: 13px; color: rgb(255, 255, 255); line-height: 1.6;">
| |
</figure>
下載完
安裝 OS X EI Capitan.app
之后,可以使用createinstallmedia
命令制作 U 盤(pán)安裝盤(pán)鳞溉,或恢復(fù)到 U 盤(pán)制作啟動(dòng)盤(pán)瘾带。 dmg with pkg:像
git-2.5.3-intel-universal-mavericks.dmg
這種 dmg 打包的是 git command CLI 的安裝 pkg,需要使用 DiskImageMounter 掛載 dmg熟菲,然后打開(kāi) pkg(使用 Installer)看政,按照引導(dǎo)一步步 next 即可安裝完成。當(dāng)然也可使用 命令行 完成掛載安裝操作抄罕。
除了使用 dmg允蚣、pkg 來(lái)安裝軟件外,Mac 下同樣有優(yōu)秀的軟件包管理工具呆贿,可以下載嚷兔、安裝和管理大量 AppleStore 沒(méi)有提供、而又經(jīng)常會(huì)用到的開(kāi)源軟件做入。我們有兩種選擇 —— MacPorts 和 Homebrew冒晰。
MacPorts
MacPorts (DarwinPorts) 是由 FreeBSD 的 port 移植而來(lái)的軟件包管理系統(tǒng),竟块,用來(lái)簡(jiǎn)化 Mac OS X和 Darwin 操作系統(tǒng)上軟件的安裝壶运。在 Mac 中安裝 MacPorts 讓你在Mac 的 Shell 下更加游刃有余。
MacPorts 有個(gè)原則浪秘,對(duì)于軟件包之間的依賴(lài)蒋情,都在 MacPorts 內(nèi)部(/opt/local
)解決埠况,無(wú)論系統(tǒng)本身是否包含了需要的庫(kù),都不會(huì)加以利用棵癣。這使得 MacPorts 龐大臃腫辕翰,導(dǎo)致系統(tǒng)出現(xiàn)大量軟件包的冗余,占用不小的磁盤(pán)空間狈谊,同時(shí)稍大型一點(diǎn)的軟件編譯時(shí)間都會(huì)難以忍受金蜀。
Homebrew
Homebrew(簡(jiǎn)稱(chēng) brew)是 Mac OS X 不可或缺的軟件管理工具(The missing package manager for OS X),讓 Mac 擁有類(lèi)似 apt-get 的功能的畴,用以簡(jiǎn)化軟件的安裝、升級(jí)和卸載過(guò)程尝胆。
Homebrew is the easiest and most flexible way to install the UNIX tools.
Homebrew 是一款使用 Ruby 進(jìn)行開(kāi)發(fā)的托管于 GitHub 上的自由及開(kāi)放源代碼的軟件包管理系統(tǒng)丧裁,通過(guò)用戶(hù)的貢獻(xiàn)擴(kuò)大對(duì)軟件包的支持。
MacPorts vs Homebrew
MacPorts 和 Homebrew 這兩種包管理系統(tǒng)的工作方式都是下載源代碼含衔,然后在本地編譯煎娇。但是這兩種包管理系統(tǒng)還是存在很大差異的,主要差異有以下三點(diǎn):
- MacPorts 的理念是盡量減少對(duì)系統(tǒng)現(xiàn)有庫(kù)的依賴(lài)贪染,編譯時(shí)間較長(zhǎng)缓呛;而 Homebrew 則是盡量依賴(lài)系統(tǒng)現(xiàn)有庫(kù),編譯時(shí)間會(huì)顯著減少杭隙。
- MacPorts 的 Package 是安裝到
/opt/local
哟绊,不會(huì)與系統(tǒng)現(xiàn)有的軟件發(fā)生沖突;而 Homebrew 的 Package 是安裝到/usr/local
痰憎,可能與系統(tǒng)自帶的軟件發(fā)生沖突票髓。 - Macports 使用 rsync 進(jìn)行同步(也可以使用svn),而 Homebrew 使用 git 進(jìn)行同步铣耘。
總體來(lái)說(shuō)洽沟,Homebrew 使用簡(jiǎn)單,編譯時(shí)間短蜗细,比較適合新手使用裆操。MacPorts 編譯時(shí)間長(zhǎng),命令還要帶上 sudo炉媒,易用性上沒(méi)有 Homebrew 好踪区,但是比較干凈,適合有潔癖的人使用橱野。
以上梳理了 Linux 和 Mac 下的包管理機(jī)制朽缴,下面重點(diǎn)介紹 Mac OS X 上的包管理 CLI 命令行工具 brew 及其增強(qiáng)工具 brew-cask。
brew (homebrew)
brew 是從軟件包倉(cāng)庫(kù)下載源代碼碼到本地進(jìn)行解壓水援,進(jìn)而執(zhí)行 ./configure
&& make install
密强,將軟件編譯安裝到單獨(dú)的目錄(/usr/local/Cellar
)下茅郎,然后軟鏈(symlink)到 /usr/local
目錄下,同時(shí)會(huì)自動(dòng)檢測(cè)下載相關(guān)依賴(lài)庫(kù)或渤,并自動(dòng)配置好各種環(huán)境變量系冗。
這個(gè)對(duì)程序員來(lái)說(shuō)簡(jiǎn)直是福音,使用簡(jiǎn)單的指令就能快速安裝薪鹦、升級(jí)和卸載本地的各種開(kāi)發(fā)環(huán)境掌敬。
安裝 brew
brew 的安裝很簡(jiǎn)單,使用一條 ruby 命令調(diào)用 curl 下載安裝即可池磁。
1.Mac OS X 上默認(rèn)已安裝 ruby:
<figure class="highlight cpp" style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; display: block; margin: 20px 0px; background-color: rgb(0, 36, 81); padding: 15px; overflow: auto; font-size: 13px; color: rgb(255, 255, 255); line-height: 1.6; font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif; text-align: justify;">
| |
</figure>
2.Mac OS X 上默認(rèn)已內(nèi)置了 curl(Command Line URL Viewer):
說(shuō)明:
curl 是基于跨平臺(tái)網(wǎng)絡(luò)協(xié)議庫(kù) libcurl 的利用 URL 語(yǔ)法在命令行方式下工作的開(kāi)源文件傳輸工具奔害。
curl常用命令 可參考 curl 詳解、curl網(wǎng)站開(kāi)發(fā)指南地熄。
舊的安裝
很早之前华临,homebrew 的安裝 url 是 https://raw.github.com/Homebrew/homebrew/go/install
:
首次執(zhí)行 brew install
安裝軟件時(shí),將提示不能創(chuàng)建 /usr/local/Cellar
目錄端考,原因是沒(méi)有 /usr/local
的寫(xiě)權(quán)限雅潭。
解決方法:
執(zhí)行
chown
命令改變/usr/local
的所有者為whoami
,-R
表示遞歸(Recursive)却特。
<figure class="highlight" style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; display: block; margin: 20px 0px; background-color: rgb(0, 36, 81); padding: 15px; overflow: auto; font-size: 13px; color: rgb(255, 255, 255); line-height: 1.6; font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif; text-align: justify;">
| |
</figure>
新的安裝
可以在 brew 的官網(wǎng)首頁(yè)的末尾看到最新的安裝代碼:
最新的安裝過(guò)程中將會(huì)要求輸入密碼授權(quán) sudo chown ${whoami} /usr/local/*
:
brew help
brew -v / –version
安裝完 brew扶供,執(zhí)行 brew -v
命令可以查看安裝的 brew 版本信息:
brew 常用命令
執(zhí)行 brew
查看幫助概要(Example usage、Troubleshooting裂明、Brewing):
-h / –h / –help / help
- 執(zhí)行
man brew
可查看詳細(xì)的 brew 幫助文檔椿浓。 - 執(zhí)行
man home
可調(diào)用瀏覽器打開(kāi) brew 官方網(wǎng)站。
命令 | 說(shuō)明 |
---|---|
brew update | 更新 brew |
brew search FORMULA | 查找軟件包漾岳,可使用正則表達(dá)式 |
brew info FORMULA | 顯示軟件的信息 |
brew deps FORMULA | 顯示包依賴(lài) |
brew install FORMULA | 安裝軟件包 |
brew uninstall FORMULA | 卸載軟件包 |
brew list | 列出已安裝的軟件包轰绵,可指定 FORMULA |
brew outdated | 列出可升級(jí)的軟件包 |
brew upgrade | 更新已安裝的軟件包,可指定 FORMULA |
brew doctor | 診斷 homebrew 環(huán)境 |
brew prune | 刪除 /usr/local 下的無(wú)效鏈接(remove broken symlinks) |
brew info
brew info
顯示軟件包信息尼荆,一般包括:
- 軟件概要信息
- 本地是否已安裝:Not installed / Poured from bottle
- 依賴(lài)包:==> Dependencies左腔,Build、Required捅儒、Recommended液样、Optional
- 編譯、安裝選項(xiàng): ==> Options
- 預(yù)警信息:==> Caveats
brew install 示例
tree
linux 下的 tree 命令以樹(shù)形結(jié)構(gòu)顯示文件目錄結(jié)構(gòu)巧还,Mac 下默認(rèn)并沒(méi)有該命令鞭莽,只有普通的 ls
命令◆锏唬可以利用 brew 查找并安裝 tree 命令行工具:
- homebrew 下載已經(jīng)編譯好的二進(jìn)制包 tree 到緩存目錄
/Library/Caches/Homebrew/tree-1.7.0.el_capitan.bottle.1.tar.gz
- 解壓
tree-1.7.0.el_capitan.bottle.1.tar.gz
到/usr/local/Cellar/tree/
目錄澎怒,根據(jù)版本存放到文件夾1.7.0
下。 - 將
/usr/local/Cellar/tree/1.7.0/bin/tree
軟鏈到/usr/local/bin/tree
阶牍,后者是前者的替身喷面,執(zhí)行 tree 命令時(shí)星瘾,真正調(diào)用的是其在 Cellar 中的真身。
Axel
以下示例查找比 wget 下載速度高幾倍的支持斷點(diǎn)續(xù)傳的多線程下載 CLI 命令行工具 axel惧辈,并顯示軟件包信息和依賴(lài)關(guān)系琳状,然后安裝該工具:
- 從 homebrew 官方倉(cāng)庫(kù)
homebrew.bintray.com
下載 axel 失敗后,自動(dòng)從鏡像源mirrors.ocf.berkeley.edu
重新下載盒齿。下載的源碼緩存到目錄/Library/Caches/Homebrew/axel-2.4.tar.gz
念逞。 - 下載完成后,依次執(zhí)行
./configure
边翁、make
和make install
將軟件編譯安裝到/usr/local/Cellar/axel/
目錄下翎承,根據(jù)版本存放到文件夾2.4
下。 - 將
usr/local/Cellar/axel/2.4/bin/axel
軟鏈到/usr/local/bin/axel
符匾,后者是前者的替身审洞,執(zhí)行 axel 命令時(shí),真正調(diào)用的是其在 Cellar 中的真身待讳。
subversion
search-info-deps-install
過(guò)程日志參考 brew install subversion.log。
brew cask
Homebrew 作為 Ruby 社區(qū)極富想象力的作品仰剿,使得 Mac 下安裝 Mysql 等常用包不再困難创淡。那么,是否也可以通過(guò) brew install mysql
這樣簡(jiǎn)單的方式來(lái)安裝 Google Chrome 瀏覽器呢南吮?為解決這一問(wèn)題琳彩,phinze 的作品 homebrew-cask 應(yīng)運(yùn)而生。
about
Homebrew 可以管理 Mac 下的命令行工具(wget部凑、node)露乏,brew cask 則是一套建立在 brew 上的增強(qiáng)命令行工具,支持管理 Mac 下的 GUI 程序涂邀,例如 qq瘟仿、 google-chrome、evernote 等比勉。
cask 從鏡像源下載已經(jīng)編譯好了的應(yīng)用軟件二進(jìn)制包(.dmg/.pkg)到本地解壓到單獨(dú)的目錄(/opt/homebrew-cask/Caskroom
)下劳较,然后軟鏈(symlink)到 /Applications
目錄下。
cask 包含了很多在 AppStore 里沒(méi)有的常用軟件浩聋,省掉了手動(dòng)下載观蜗、解壓、拖拽(安裝)等步驟衣洁,且卸載也相當(dāng)容易與干凈墓捻,使用起來(lái)非常方便。
假設(shè)你已安裝好了 Homebrew坊夫,執(zhí)行以下命令查找 cask
包并顯示軟件包信息和依賴(lài)關(guān)系:
install
安裝 cask 極其簡(jiǎn)單砖第,打開(kāi)終端輸入:
brew tap phinze/homebrew-cask
由于 brew 和包含的包源都是通過(guò) github 來(lái)管理撤卢,人為的維護(hù)管理。除了默認(rèn)的倉(cāng)庫(kù)厂画,還允許別人的源添加進(jìn)來(lái)凸丸。通過(guò) brew tap
指定第三方包源:
$ brew tap
默認(rèn)的源是 caskroom/cask
,以下顯式 tap 原作者的源(phinze/homebrew-cask
):
brew install brew-cask
本機(jī)已經(jīng)安裝了 brew-cask
的依賴(lài)軟件 emacs
:
如果沒(méi)有安裝 emacs
袱院,則 brew 在安裝 cask 之前會(huì)自動(dòng)幫我們下載安裝 emacs
:
brew cask
執(zhí)行 brew cask
或 brew-cask
可查看幫助概要(首次需輸入 sudo 密碼):
執(zhí)行 brew-cask --version
命令可以查看安裝的 brew-cask 版本信息:
command usage
brew cask 大部分命令和 brew 保持一致屎慢,新增了以下幾條命令:
命令 | 說(shuō)明 |
---|---|
brew cask audit | 查詢(xún)指定 Cask 的可安裝性 |
brew cask cat | 查看指定 Cask 安裝源信息 |
brew cask zap | 打包指定 Cask |
brew cask cleanup | 清理緩存及軟鏈 |
安裝了 cask 之后,就可以像 brew 一樣來(lái)搜索安裝軟件忽洛,以下示例 google-chrome :
搜索安裝包
查詢(xún)安裝性
查詢(xún)包信息
1.執(zhí)行 brew-cask cat
查詢(xún)指定 Cask 的源信息:
2.執(zhí)行 brew-cask info
查詢(xún)指定 Cask 的包信息:
安裝/卸載 應(yīng)用
brew-cask
安裝和卸載的命令同 brew
腻惠,都是使用 install / uninstall
。
1.執(zhí)行 brew cask install google-chrome
命令安裝 google-chrome:
2.執(zhí)行 brew cask uninstall google-chrome
命令卸載 google-chrome:
uninstall
命令將刪除 /opt/homebrew-cask/Caskroom/google-chrome
及其在 ~/Applications/
下的軟鏈(symlink)欲虚。
我們也可手動(dòng)刪除 homebrew 下載目錄中緩存的 google-chrome 安裝包 /Library/Caches/Homebrew/google-chrome-latest.dmg
及其軟鏈 /Library/Caches/Homebrew/Casks/google-chrome-latest.dmg
集灌。
升級(jí)更新軟件
brew-cask 并沒(méi)有提供 brew 的 upgrade
命令,升級(jí)更新軟件只能通過(guò) DIY:
- 進(jìn)入應(yīng)用軟件的【關(guān)于】复哆,手動(dòng)檢查是否可更新升級(jí)欣喧,使用軟件自己的更新流程。
- 卸載重裝 (
brew cask uninstall
&&brew cask install
) 梯找,實(shí)現(xiàn)間接升級(jí)唆阿。
brew-cask install 示例
文件預(yù)覽插件
有些插件可以讓 Mac 上的文件預(yù)覽更有效,比如語(yǔ)法高亮锈锤、markdown 渲染驯鳖、json 預(yù)覽等等。通過(guò) brew cask install
命令可以安裝這些插件:
Visual Studio Code
Wireshark
search-info-cat-audit-install
過(guò)程日志參考 brew-cask install wireshark.log久免。