蘋果M1 Mac上怎樣使用Homebrew?
Homebrew 是 Mac 上管理軟體包的最實用工具之一。Homebrew是一款Mac OS平臺下的軟體包管理工具,擁有安裝、解除安裝、更新、檢視、搜尋等很多實用的功能。簡單的一條指令,就可以實現包管理,而不用你關心各種依賴和檔案路徑的情況,十分方便快捷。
但截至目前,它還沒有對搭載 Apple silicon 的新 Mac 機型完成適配。根據維護者在 GitHub 上釋出的說明,Homebrew 正在積極適配新架構的過程中,但目前還面臨一些較大障礙,如缺少基於 ARM 架構的持續整合框架、很多軟體包依賴的框架或編譯器(go、gcc、qt)未適配等。
Homebrew 目前在新 Mac 上仍然是可用的,並且已經發布了原生支援 ARM 架構的實驗性版本。
1. 安裝 ARM 版 Homebrew
根據官方規劃,ARM 版 Homebrew 必須安裝在 /opt/homebrew 路徑下,而非此前的 /usr/local/Homebrew。由於官方的安裝指令碼還未更新,可以透過如下命令手動安裝:
cd /opt # 切換到 /opt 目錄 mkdir homebrew # 建立 homebrew 目錄 curl -L | tar xz --strip 1 -C homebrew
(注: 如果安裝和使用過程中報錯,可能是因為當前使用者對於 /opt/homebrew 路徑沒有許可權。對此,可以透過 sudo chown -R $(whoami) /opt/homebrew 接管該目錄。)
雖然上面的步驟已經安裝了 ARM 版 Homebrew,但此時在終端中執行 brew 命令並不能直接啟動該版本。這是因為預設情況下,ARM 版 Homebrew 用來安裝程式的路徑 /opt/homebrew/bin 並不在環境變數 PATH 中,因此終端無法檢索到該路徑下的 brew 程式。
為此,編輯配置檔案 ~/.zshrc,加入如下內容:
path=('/opt/homebrew/bin' $path) export PATH
(注:建議使用者使用 macOS Big Sur 的預設終端 zsh,如使用 bash 或 fish,則修改 ~/.bashrc 或 ~/.config/fish/config.fish,後同。)
然後重新啟動終端。這樣,直接執行 brew 就可以啟動 ARM 版的 Homebrew 了。
2. 安裝 X86 版 Homebrew
如上所述,由於很多軟體包目前還沒有適配 ARM 架構(可以在 Homebrew 的 Apple silicon issue 頁面查詢),無法透過 ARM 版 Homebrew 安裝,因此我們還需要安裝一份 X86 版的 Homebrew 備用。
X86 版 Homebrew 無法在 ARM 環境下安裝。為此,需要先啟動一個 X86 環境的終端。網路上傳播較廣的方法是建立一個 Terminal.app 的副本,然後令其在 Rosetta 相容模式下執行。
其實,注意到在任何命令前增加 arch -x86_64,就可以以 X86 模式執行該命令。因此,執行:
arch -x86_64 $SHELL
就可以啟動一個 X86 模式終端,使得之後執行的命令都在 X86 模式下執行。
此時,執行 Homebrew 的官方安裝指令碼
/bin/bash -c "$(curl -fsSL )"
就可以完成 X86 版 Homebrew 的安裝。
3. ARM 和 X86 版 Homebrew 的共存問題
經過上面的步驟,系統中目前有了兩個 brew 程式,即 X86 版的 /usr/local/bin/brew 和 ARM 版的 /opt/homebrew/bin/brew。那麼,當在終端中執行 brew 命令時,系統會以哪個為準呢?
當存在重名程式時,終端會按照重名程式在環境變數 PATH 中的先後順序選擇要執行的版本。由於之前配置 ~/.zshrc 時,將 ARM 版 Homebrew 的路徑放在了 PATH 的最前面,因此執行 brew 時,位於 /opt/homebrew/bin/brew 的 ARM 版將被優先執行。如果要執行 X86 版,則需要手動輸入完整路徑 arch -x86_64 /usr/local/bin/brew。
如果覺得輸入這麼長的命令過於麻煩,可以在 ~/.zshrc 中為兩個版本分別設定簡稱(alias):
abrew='/opt/homebrew/bin/brew' # ARM Homebrew ibrew='arch -x86_64 /usr/local/bin/brew' # X86 Homebrew
這樣,執行 abrew install 就可以呼叫 ARM 版 Homebrew 安裝軟體包,執行 ibrew install 就可以呼叫 X86 版,從而不容易混淆。
至於應該使用哪個版本的 Homebrew 安裝軟體包,需要區別考慮:
- 對於命令列(CLI)程式:可以優先嚐試使用 ARM 版 Homebrew 安裝,保證獲得針對新架構編譯的版本,實現最佳的執行效果。但注意:
- 有的軟體包已經相容新架構、但還沒有釋出相應的編譯版,需要安裝的過程中在本地編譯,耗時會相對很長;
- 如果軟體包還沒有相容新架構,使用 ARM 版 Homebrew 安裝會報錯,此時可以換用 X86 版 Homebrew 安裝。
- 對於圖形介面(GUI)程式,即透過 Homebrew Cask 安裝的 .app 程式:對於這類軟體,Homebrew 起的作用只是從官方渠道下載這些軟體的安裝包,然後安裝到 /Applications 路徑(及執行安裝指令碼,如果有)。因此無論其是否針對新架構最佳化,透過任一版本 Homebrew 都可以安裝。考慮到日後維護方便,建議直接用 ARM 版 Homebrew 安裝即可。
4. 從舊 Mac(或 X86 版 Homebrew)遷移軟體包
如果你在拿到 M1 版 Mac 以後,選擇了從舊 Mac 遷移資料、或恢復 Time Machine 備份,那麼系統中可能已經有了遺留的 X86 版 Homebrew 和用它安裝的軟體包。此外,你可能也希望將以往慣用的軟體包無遺漏地遷移到新 Mac。這些情況下,可以使用 Homebrew Bundle 功能輔助遷移工作。
要匯出使用 X86 版 Homebrew 安裝的軟體包列表,執行:
/usr/local/bin/brew bundle dump
就能在當前目錄下得到一個名為 Brewfile 的備份檔案。該檔案可以用普通文字編輯器開啟,列舉了所有已安裝軟體包、新增的第三方軟體源(tap)、Homebrew Cask 管理的 GUI 程式和 mas-cli 管理的 Mac App Store 程式:
tap "homebrew/bundle" tap "homebrew/cask" […] brew "dash" brew "ffmpeg" […] cask "bartender" cask "bettertouchtool" […] mas "Apple Configurator 2", id: 1037126344 mas "Aviary", id: 1522043420 […]
記下 Brewfile 的路徑。然後,使用 ARM 版 Homebrew 匯入其內容並安裝:
/opt/homebrew/bin/brew bundle --file /path/to/Brewfile
就完成了遷移。
需要注意的是,如果你是在同一臺機器的兩版 Homebrew 間遷移,那麼並不需要遷移透過 Homebrew Cask 和 App Store 安裝的 GUI 程式(Homebrew 也不會允許覆蓋安裝)。這時,可以手動編輯上述 Brewfile,將以 cask 和 mas 開頭的記錄刪除,然後再透過 brew bundle 匯入。
如果想讓 ARM 版 Homebrew 接管已經安裝的 Homebrew Cask 軟體,只要將位於 /usr/local/Caskroom 下的各資料夾移動到 /opt/homebrew/Caskroom 即可:
mv /usr/local/Caskroom/* /opt/homebrew/Caskroom
5.Homebrew 可以透過 Rosetta 2 轉換的方式進行安裝
方法很簡單,只需在過去的安裝命令前加上 arch -x86_64 即可
$arch -x86_64 /bin/bash -c " $(curl -fsSL )"
這種透過轉制的 Homebrew 在某些軟體上可能有一些相容性問題,因此建議安裝另一個手動編譯版:
$ sudo mkdir -p /opt/homebrew
$ sudo chown -R $(whoami) :staff/opt/homebrew
$ cd /opt
$ curl -L https:/ /github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
第一種方式安裝的 Homebrew 在 /usr/local/bin 目錄下,而第二種方式安裝的在 /opt/homebrew 目錄下,後者不會自動新增到 PATH 環境變數中,因此需要手動設定:
exportPATH= "/opt/homebrew/bin: $PATH"
這樣,你的 Mac 裡就有了兩個 Homebrew:一個是 Rosetta 轉換的,一個是原生的。原生的目錄在前面,那麼 brew 命令將預設執行這個版本。
如果想執行 Rosetta 轉換版怎麼辦?我們可以單獨設定一個 ibrew 命令:
aliasibrew= 'arch -x86_64 /usr/local/bin/brew'
目前,Homebrew 尚未提供用於 ARM Mac 的預編譯軟體包,因此最好使用 brew install -s 命令進行安裝。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956340/viewspace-2741503/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 把 Linux 移植到蘋果 M1 Mac 上Linux蘋果Mac
- M1 Mac安裝 HomebrewMac
- 什麼是Homebrew和在Mac上的怎麼使用?Mac
- 蘋果M1晶片的Mac怎麼關閉SIP?M1 mac關閉Sip方法教程!蘋果晶片Mac
- M1 Mac 12.1 Homebrew安裝GoMacGo
- 蘋果Mac中Dock欄怎麼用?蘋果Mac中Dock欄的設定和使用技巧蘋果Mac
- 怎麼樣可以控制蘋果Mac電池健康管理功能呢蘋果Mac
- 在蘋果Mac上如何使用指令碼編輯器?蘋果Mac指令碼
- 蘋果M1 Mac重新支援側載 iOS/iPadOS App蘋果MaciOSiPadAPP
- M1 晶片版 蘋果Mac 抹掉重灌系統教程晶片蘋果Mac
- 蘋果Mac電腦串列埠除錯工具:serial for mac 支援M1蘋果Mac串列埠除錯
- 在蘋果Mac上如何使用預覽反轉圖片?蘋果Mac
- 如何在蘋果Mac上關閉螢幕使用時間?蘋果Mac
- M1安裝homebrew
- 如何在蘋果Mac上開啟AirDrop?蘋果MacAI
- 蘋果使用者稱M1 Mac SSD過度磨損,或影響使用壽命蘋果Mac
- 蘋果iPhone XS分屏使用教程 蘋果iPhone怎麼分屏?蘋果iPhone
- 開源 Python 發行版 Anaconda 適配蘋果 M1 MacPython蘋果Mac
- 如何在蘋果Mac上刪除APFS卷?蘋果Mac
- 在蘋果Mac上如何更改AirDrop名稱?蘋果MacAI
- Mac使用技巧:怎樣在Mac電腦上更改密碼Mac密碼
- Mac 下使用homebrew安裝NVMMac
- 如何使用藍芽解鎖蘋果mac?藍芽蘋果Mac
- 怎樣在 Mac 上使用 App Store 更新軟體MacAPP
- 蘋果Mac電腦影像處理工具:Repix Pro for Mac啟用版 支援m1蘋果Mac
- 教你怎麼使用Apple Watch手錶解鎖蘋果Mac電腦APP蘋果Mac
- Mac上HomeBrew安裝及換源教程Mac
- 如何在mac蘋果電腦上長截圖Mac蘋果
- mac 按照 homebrewMac
- 記錄Mac Pro M1晶片安裝HomeBrew的過程吧Mac晶片
- 蘋果的 M1 Ultra 是什麼?蘋果
- Apple Rosetta 2 、蘋果 M1是什麼? M1通用型應用透過Rosetta2怎樣執行?APPROS蘋果
- Mac蘋果電腦怎麼建立txt檔案?Mac蘋果
- 蘋果Mac電腦不能開機怎麼辦蘋果Mac
- 蘋果mac應用:Photoshop 2024 for mac 全新啟用完美使用蘋果Mac
- 蘋果Mac電腦雲盤掛載工具:CloudMounter for Mac中文版啟用 支援M1蘋果MacCloud
- 在Mac上使用Homebrew升級到PHP為最新版本MacPHP
- 蘋果Mac電腦的複製貼上不能用蘋果Mac