1. 程式人生 > 實用技巧 >【軟體】Homebrew 的使用

【軟體】Homebrew 的使用

Homebrew 的使用

The Missing Package Manager for macOS (or Linux)

如同 iPhone App Store,Mac 也有 Mac App Store,但是很多軟體在 Mac App Store 上並不能找到,主要有以下 3 個原因:

  • 時間。Mac 中直到 Snow Leopard 才推出 Mac App Store,也就是在 OS X 釋出 12 年後才出來。相比之下,iPhone App Store 是伴隨著 iPhone 3G 而釋出的,並同時支援第一代 iPhone。本來就禁止從其他渠道安裝 App 加上 Store 的及時出現,使得所有應用都集中在 iPhone App Store 裡,然而 Mac App Store 則存在很大的時間差。
  • 稽核。App Store 的稽核機制嚴格,軟體上架後許多功能可能要被閹割。
  • 分成。對於付費軟體,蘋果公司和開發者是按照三七分成的,開發者並不願意分一杯羹,並且蘋果公司也沒有強制要求軟體必須上架 App Store,那麼不上架何樂而不為呢?

打著The Missing Package Manager for macOS (or Linux)口號而存在的 Homebrew,如 Debian 的 apt,RedHat 的 yum 等,成為了 Mac 的包管理器,無論是命令列工具還是 GUI 程式,Homebrew 都能很好的管理和安裝。

安裝 Homebrew

Homebrew 官網給出的安裝命令由於牆的原因可能會報curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

,並且即使順利安裝了,後期也要修改為國內源才能有很好的下載速度,所以推薦直接使用集成了國內源的安裝指令碼

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

Homebrew 將本地的/usr/local初始化為 git 的工作樹,並將目錄所有者變更為當前所操作的使用者,以便以後的操作將不需要管理員許可權。/usr/local中部分重要的目錄結構如下:

.
├── Caskroom # brew cask install 所安裝的程式
│   └── google-chrome
│       └── 84.0.4147.125
│           └── Google\ Chrome.app -> /Applications/Google\ Chrome.app
├── Cellar # brew install 所安裝的命令列工具
│   └── tree
│       └── 1.8.0
│           ├── bin
│           └── share
├── Homebrew # Homebrew 專案
│   ├── Library
│   │   ├── Homebrew # Homebrew
│   │   └── Taps
│   │       └── homebrew
│   │           ├── homebrew-cask # homebrew-cask
│   │           │   └── Casks # 所有可安裝的程式列表
│   │           └── homebrew-core # homebrew-core
│   │               └── Formula # 所有可安裝的命令列工具列表
│   ├── bin # brew 命令
├── bin # brew 所安裝工具/程式命令的軟連結
├── etc # brew 所安裝工具/程式的配置檔案預設存放路徑
└── opt # 編譯後的命令列工具
    └── tree -> ../Cellar/tree/1.8.0

使用 Homebrew

# 如果安裝 GUI 程式,在下面命令中新增 cask 即可
# 如 brew cask install name
brew install name # 安裝命令列工具
brew info name # 顯示命令列工具的各種資訊,包括版本、原始碼地址等
brew uninstall name # 解除安裝命令列工具
brew search name # 搜尋 brew 支援的命令列工具,支援模糊搜尋
brew list # 列出過 brew 安裝的所有命令列工具
brew update # 更新 brew 自身
# 目前 brew cask 並沒有命令直接更新已安裝的軟體,軟體更新主要是通過軟體自身的完成更新
brew upgrade name # 更新安裝過的命令列工具,如果不加命令列工具名就更新所有可以更新的命令列工具
brew cleanup # 清除下載的各種快取,Homebrew 更新並不會刪除舊版本,用該命令可以清除快取