Homebrew是Mac中很強(qiáng)大的一個(gè)指令,相當(dāng)于Ubuntu中的apt-get震肮,當(dāng)我們需要在Mac中安裝某些特定的環(huán)境時(shí)称龙,就需要用到brew指令。
1. 安裝指令
首先是一般情況下的安裝指令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. 存在的問題
然后按照提示多數(shù)情況即可安裝成功戳晌。
但是如果都是這樣茵瀑,那么寫這篇文章就沒有意義了,我在執(zhí)行后上述指令后會(huì)安裝失敗躬厌,返回類似這樣的錯(cuò)誤:
error: could not lock config file /usr/local/Homebrew/.git/config: Permission denied
Failed during: git init -q
3. 解決問題
這篇文章就是為了解決這個(gè)問題马昨,以下操作參考mac Homebrew /usr/local寫入權(quán)限問題
出現(xiàn)這個(gè)錯(cuò)誤的原因是因?yàn)闆]有/usr/local/目錄的權(quán)限,而安裝brew或者brew update時(shí)需要向這個(gè)文件夾下寫入文件
于是執(zhí)行修改權(quán)限指令: sudo chown -R <用戶名> /usr/local
但是你會(huì)得到這樣的錯(cuò)誤: chown: /usr/local: Operation not permitted
原因在于蘋果從 OS X El Capitan 10.11 系統(tǒng)開始使用了 Rootless 機(jī)制扛施,可以將該機(jī)制理解為一個(gè)更高等級(jí)的系統(tǒng)的內(nèi)核保護(hù)措施鸿捧,系統(tǒng)默認(rèn)將會(huì)鎖定 /system、/sbin疙渣、/usr 這三個(gè)目錄匙奴。
終端輸入
csrutil status
可以看到這樣的結(jié)果
System Integrity Protection status:enabled
說明rootless默認(rèn)打開,此時(shí)無法通過sudo命令妄荔,對/system泼菌、/sbin、/usr 這三個(gè)目錄進(jìn)行修改啦租。
打開哗伯、關(guān)閉Rootless機(jī)制
- 重啟 Mac
- 開機(jī)時(shí)后按下 Command+R,進(jìn)入恢復(fù)模式篷角。
- 在頂端的菜單欄的實(shí)用工具中找到并打開 Terminal/終端
- 輸入指令:
csrutil disable
- 此時(shí)rootless已經(jīng)關(guān)閉焊刹,退出恢復(fù)模式,正常進(jìn)入系統(tǒng)恳蹲。在終端輸入:
csrutil status
可以看到System Integrity Protection status:disabled
則說明關(guān)閉Rootless機(jī)制成功落追,然后就可以更改目錄權(quán)限啦 - 再次執(zhí)行指令:
sudo chown -R <用戶名> /usr/local
骏全,命令完成后無提示巍实,說明修改成功 - 建議修改完成之后芋类,為了系統(tǒng)安全,將rootless重新開啟错忱。開啟方式同關(guān)閉方式一樣儡率,在恢復(fù)模式的Terminal輸入:
crsutil enable
處理好 /usr/local 的權(quán)限問題后我們就可以正常安裝Homebrew了