Mac中安裝Homebrew報錯Permission denied、Failed during: git init -q

Homebrew是Mac中很強大的一個指令,相當于Ubuntu中的apt-get,當我們需要在Mac中安裝某些特定的環境時,就需要用到brew指令。

1. 安裝指令

首先是一般情況下的安裝指令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. 存在的問題

然后按照提示多數情況即可安裝成功。
但是如果都是這樣,那么寫這篇文章就沒有意義了,我在執行后上述指令后會安裝失敗,返回類似這樣的錯誤:

error: could not lock config file /usr/local/Homebrew/.git/config: Permission denied
Failed during: git init -q

3. 解決問題

這篇文章就是為了解決這個問題,以下操作參考mac Homebrew /usr/local寫入權限問題

出現這個錯誤的原因是因為沒有/usr/local/目錄的權限,而安裝brew或者brew update時需要向這個文件夾下寫入文件
于是執行修改權限指令: sudo chown -R <用戶名> /usr/local
但是你會得到這樣的錯誤: chown: /usr/local: Operation not permitted
原因在于蘋果從 OS X El Capitan 10.11 系統開始使用了 Rootless 機制,可以將該機制理解為一個更高等級的系統的內核保護措施,系統默認將會鎖定 /system、/sbin、/usr 這三個目錄。
終端輸入
csrutil status
可以看到這樣的結果
System Integrity Protection status:enabled
說明rootless默認打開,此時無法通過sudo命令,對/system、/sbin、/usr 這三個目錄進行修改。

打開、關閉Rootless機制

  • 重啟 Mac
  • 開機時后按下 Command+R,進入恢復模式。
  • 在頂端的菜單欄的實用工具中找到并打開 Terminal/終端
  • 輸入指令: csrutil disable
  • 此時rootless已經關閉,退出恢復模式,正常進入系統。在終端輸入: csrutil status 可以看到System Integrity Protection status:disabled則說明關閉Rootless機制成功,然后就可以更改目錄權限啦
  • 再次執行指令: sudo chown -R <用戶名> /usr/local,命令完成后無提示,說明修改成功
  • 建議修改完成之后,為了系統安全,將rootless重新開啟。開啟方式同關閉方式一樣,在恢復模式的Terminal輸入:crsutil enable

處理好 /usr/local 的權限問題后我們就可以正常安裝Homebrew了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容