使用「系統移轉輔助程式.app」將舊筆電資料從 Mac Intel 轉移到 Mac M1。使用 PhpStorm 跳出錯誤訊息 「Git is not installed xcrun: error: unable to load libxcrun」。解決方法:使用 Homebrew 安裝 git 或者是安裝 Command Line Tools for Xcode 13.2
Photo by Christina Morillo on StockSnap |
錯誤狀況
Git is not installed xcrun: error: unable to load libxcrun (dlopen(/Library/Developer/CommandLineTools/usr/lib/libxcrun.dylib, 0x0005): tried: '/Library/Developer/CommandLineTools/usr/lib/libxcrun.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/libxcrun.dylib' (no such file)).
打開「終端機.app」輸入指令,了解系統預設呼叫的 git 的檔案路徑
which git
回傳結果
/usr/bin/git
輸入指令
/usr/bin/git --version
顯示同樣的錯誤訊息,推測「系統移轉輔助程式.app」將舊筆電的 git 程式複製過來到新筆電。但是因為硬體架構不相同,導致發生錯誤。
解決方式
解決方法 1:使用 Homebrew 安裝 git,快速!
因為下載安裝 Xcode 很花時間,比較快速的解決方式是透過 Homebrew 安裝 git
- 如果還沒有安裝 Homebrew,打開「終端機.app」輸入指令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 按 Enter
- 「終端機.app」輸入指令:
brew install git - 按 Enter
完成安裝 git
- 「終端機.app」輸入指令
where git - 我的狀況回傳
/usr/local/bin/git
/usr/bin/git - 「終端機.app」輸入指令
vi ~/.zshrc - 加入這一行
alias git='/usr/local/bin/git' - 輸入 :wq 儲存檔案,為了讓設定生效,需要關閉「終端機.app」再重新啟動「終端機.app」。PhpStorm 同樣要重新啟動。
- 返回「終端機.app」輸入指令
which git - 原本回傳結果是 /usr/bin/git ,現在改成 /usr/local/bin/git
- 回到 PhpStorm 偏好設定,「Path to Git executable」輸入「git」或完整路徑「/usr/local/bin/git」。
- 再點選下圖「Test」按鈕,可以順利顯示 git 版本資訊,而不會出現 錯誤訊息,代表設定正確。
解決方法 2:Command Line Tools for Xcode 13.2
- 前往 More - Downloads - Apple Developer 下載 「Xcode 13.2」 與「Command Line Tools for Xcode 13.2」(CLT)。其中 Xcode 約 32 GB ,需要花一些時間下載。
- 安裝 「Xcode 13.2」 與「Command Line Tools for Xcode 13.2」
- 「終端機.app」輸入指令
/usr/bin/git --version - 預期出現 git 版本資訊,而不是文章一開始提到的錯誤訊息。如果有執行解決方式 2 的修改 .zshrc 檔案,再自行刪除這一行即可:
alias git='/usr/local/bin/git'
無效的嘗試
- 嘗試直接刪除 sudo rm -rf /usr/bin/git 失敗,因為 System Integrity Protection (SIP)系統完整性保護
- 「終端機.app」輸入指令 xcode-select --install 顯示結果「xcode-select: error: command line tools are already installed, use "Software Update" to install updates」
- 「終端機.app」輸入指令 softwareupdate --all --install --force 顯示結果「No updates are available.」
留言
張貼留言