Homebrew常規使用教程

homebrew是osx下的一個包管理工具,可以很方便的管理各類包。官方給出的定義是

macOS缺失的軟件包管理器
官方地址

安裝

1、自動安裝(推薦)

執行如下命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

上邊的命令行是兩個命令,首先下載install文件,然后用系統的ruby工具安裝。

盡量再bash或者zsh下安裝,fish下會提示不識別'$'。

不需要使用超級權限(sudo),該文件會將HomeBrew安裝至 usr/local 目錄下。安裝過程中會提示你絮語奧執行哪些動作。

==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following new directories will be created:
/usr/local/bin
/usr/local/etc
/usr/local/include
/usr/local/lib
/usr/local/sbin
/usr/local/share
/usr/local/var
/usr/local/opt
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
/usr/local/var/homebrew
/usr/local/var/homebrew/linked
/usr/local/Cellar
/usr/local/Caskroom
/usr/local/Homebrew
/usr/local/Frameworks
==> The Xcode Command Line Tools will be installed.

后邊還會有一些提示。繼續的話會提示輸入密碼,等待安裝完成。

安裝完成后輸入 brew -v 即可顯示是否安裝成功:

Homebrew 2.1.9
Homebrew/homebrew-core (git revision 84988; last commit 2019-07-29)

2、手動安裝

執行如下命令:

mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

避免以下兩點:

目錄內包含空格
不要安裝在 /sw 或者 /opt/local 目錄下
當然也可以手動下載安裝腳本,然后修改 HOMEBREW_PREFIX 變量的值,改為自己的安裝目錄。


brew常用命令

1、安裝卸載軟件

  1. brew --version 或者 brew -v 顯示brew版本信息
  2. brew install <formula> 安裝指定軟件
  3. brew uninstall <formula> 卸載指定軟件
  4. brew list 顯示所有的已安裝的軟件
  5. brew search text 搜索本地遠程倉庫的軟件,已安裝會顯示綠色的勾
  6. brew search /text/ 使用正則表達式搜軟件
  7. brew info <formula> 顯示指定軟件信息
  8. brew reinstall <formula> 重新安裝指定軟件,先卸載后安裝
  9. brew install <formula> --build-from-source 源碼安裝指定軟件,可以給定指定參數
  10. brew commands 列出所有可用命令

2、升級軟件相關

  1. brew update 自動升級homebrew (從github下載最新版本)

  2. brew outdated 檢測已經過時的軟件

  3. brew upgrade 升級所有已過時的軟件,即列出的以過時軟件

  4. brew upgrade <formula> 升級指定的軟件

  5. brew pin <formula> 禁止指定軟件升級

  6. brew unpin <formula> 解鎖禁止升級

  7. brew upgrade --all 升級所有的軟件包,包括未清理干凈的舊版本的包

  8. brew edit <formula> 編輯軟件,不會的情況下慎用

  9. brew tap 列出本地資源倉庫,其中 homebrew 是默認倉庫,其它都是第三方倉庫

  10. brew tap <user/repo> 添加第三方倉庫,命名的規則按照github來定的。使用

  11. brew untap <user/repo> 刪除倉庫

  12. brew deps <formula> 查看指定軟件依賴于哪些軟件

  13. brew uses <formula> 查看指定軟件被哪些軟件所依賴

3、清理相關

homebrew再升級軟件時候不會清理相關的舊版本,在軟件升級后我們可以使用如下命令清理

  1. brew cleanup -n 列出需要清理的內容
  2. brew cleanup <formula> 清理指定的軟件過時包
  3. brew cleanup 清理所有的過時軟件
  4. brew unistall <formula> 卸載指定軟件
  5. brew unistall <fromula> --force 徹底卸載指定軟件,包括舊版本

通過brew安裝的文件會自動設置環境變量,所以不用擔心命令行不能啟動的問題。
比如安裝好了gradle,即可運行 gradle -v

3、brew services管理后臺服務

macOS使用 launchctl 命令加載開機自動運行的服務,brew service 可以簡化 lauchctl 的操作。

以MySQL為例,使用launchctl啟動:

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

如使用 brew service 可以簡化為:

brew services start mysql
  • services 常用命令
brew services list  # 查看使用brew安裝的服務列表

brew services run formula|--all  # 啟動服務(僅啟動不注冊)

brew services start formula|--all  # 啟動服務,并注冊

brew services stop formula|--all   # 停止服務,并取消注冊

brew services restart formula|--all  # 重啟服務,并注冊

brew services cleanup  # 清除已卸載應用的無用的配置
  • 配置文件目錄
/Library/LaunchDaemons # 開機自啟,需要sudo
~/Library/LaunchAgents # 用戶登錄后自啟

以homebrew.mxcl.kafka.plist為例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>homebrew.mxcl.kafka</string>
    <key>WorkingDirectory</key>
    <string>/usr/local</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/opt/kafka/bin/kafka-server-start</string>
        <string>/usr/local/etc/kafka/server.properties</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/usr/local/var/log/kafka/kafka_output.log</string>
    <key>StandardOutPath</key>
    <string>/usr/local/var/log/kafka/kafka_output.log</string>
</dict>
</plist>

在這里可以找到服務路徑、啟動參數、日志路徑等

4、brew cask

Homebrew Cask 是 Homebrew 的擴展,借助它可以方便地在 macOS 上安裝圖形界面程序,即我們常用的各類應用。Homebrew 中文含義為自制、自釀酒,Cask 中文含義為桶、木桶,桶裝酒是一種成品,也就是說每一個 homebrew cask 都可以直接使用的,比如 Atom 的 Cask 名稱為 atom,那么就可以使用如下命令安裝:

brew cask install atom

甚至也可以提交新的 Cask,比如假設有桌面客戶端少數派,則用 brew cask create sspai 創建新的名稱為 sspai 的 Cask,當然還要提供官網下載鏈接、官方主頁、應用版本等信息,可以參照 官方教程,此處就不再細說。

安裝 Homebrew Cask【以后新版不需要安裝】
安裝好brew 后,就可以執行命令 brew tap caskroom/cask 獲取 Homebrew Cask。

注意:
Caskroom 的 Git 地址在 2018 年 5 月 25 日從 https://github.com/caskroom/homebrew-cask 遷移到了 https://github.com/Homebrew/homebrew-cask
所以,以后就不需要安裝 Homebrew Cask

使用 Homebrew Cask

github使用:https://github.com/Homebrew/homebrew-cask/blob/master/USAGE.md

  1. brew cask install <formula> 安裝指定圖形界面軟件
  2. brew cask uninstall <formula> 卸載軟件
  3. brew cask uninstall --force <formula> 卸載軟件,帶參數
  4. brew cask search text 搜索軟件
  5. brew cask list 列出所有通過cask安裝的軟件
  6. 其它可以參考:https://github.com/Homebrew/homebrew-cask/blob/master/USAGE.md

舉例可安裝的軟件

# 安裝chrome
brew cask install google-chrome

# 安裝LaunchRocket
brew cask install launchrocket

Homebrew 更換為國內鏡像

查看鏡像地址

?  ~ cd "$(brew --repo)" 
?  Homebrew git:(stable) pwd
/usr/local/Homebrew
?  Homebrew git:(stable) git remote -v
origin  https://github.com/Homebrew/brew (fetch)
origin  https://github.com/Homebrew/brew (push)

1、國內鏡像安裝

  • 獲取官網腳本 并保存名為 brew_install;
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install >> brew_install
  • 編輯brew_install文件,更改腳本中的資源鏈接,替換成 中國科學技術大學 的鏡像
#BREW_REPO = "https://github.com/Homebrew/brew".freeze
BREW_REPO = "git://mirrors.ustc.edu.cn/brew.git".freeze
  • 安裝brew
/usr/bin/ruby ./brew_install

2、Homebrew替換為中科大源

替換默認源

  • 替換brew.git
cd "$(brew --repo)"     # 其實就是定位至 /usr/local/Homebrew 目錄下
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# git remote set-url origin git://mirrors.ustc.edu.cn/brew.git

# 重置為官方地址:
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git
  • 替換homebrew-core.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-core.git

# 重置為官方地址:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core
  • 默認不安裝cask 有需要的可以替換
    [Homebrew cask 軟件倉庫,提供 macOS 應用和大型二進制文件]
cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
# git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-cask.git

# 重置為官方地址:
cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask
git remote set-url origin https://github.com/Homebrew/homebrew-cask
  • brew 更新
brew update
  • 檢查是否有誤
brew doctor

替換Homebrew Bottles源

  • bash用戶
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile
  • zsh用戶
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc

3、Homebrew替換為清華大學源

替換默認源

  • 替換現有上游
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

brew update
  • 復原
git -C "$(brew --repo)" remote set-url origin https://github.com/Homebrew/brew.git

git -C "$(brew --repo homebrew/core)" remote set-url origin https://github.com/Homebrew/homebrew-core

brew update

替換Homebrew Bottles源

  • bash用戶
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile
  • zsh用戶
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc

中科大源 和 清華大學源 其實在操作上是一樣的,而本文檔分了兩部份整理,是為了區分 和更容易理解


常用軟件安裝

ccat 安裝(查看工具)

brew install ccat

添加快捷方式

# 修改配置
vi ~/.zshrc
# 底部添加(覆蓋掉之前的 cat功能。最好不要有換行)
alias cat=ccat

tig 安裝(git插件)

brew install tig
# 在git項目下 輸入
tig

# 進入tig界面,上下鍵選擇提交的信息
# 按住 cmd 按鍵查看
# q 鍵退出

安裝常用的開發包

brew install wget watch tmux cmake openssl imagemagick graphicsmagick gearman geoip readline autoconf multitail source-highlight autojump zsh-completions sshfs

安裝常用的軟件

brew cask install firefox google-chrome  thunder qq phpstorm sublime-text

brew cask install alfred appcleaner  sequel-pro sketch mplayerx

過時軟件換3方庫

brew install php@7.4
Error: php@7.4 has been disabled because it is a versioned formula!

該消息告訴您 PHP 7.4 已過時。您可以安裝 PHP8

brew install php
或鏈接第 3 方存儲庫并從那里安裝 7.4。

例如:
第三方安裝:https://github.com/shivammathur/homebrew-php

brew tap shivammathur/php
brew install shivammathur/php/php@7.4
brew link php@7.4

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評論 6 540
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,275評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,904評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,368評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,736評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,919評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,481評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,235評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,427評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,656評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,160評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,380評論 2 379