因?yàn)槟承┰蚯炅矗芫煤芫脹]有動(dòng)過電腦寫代碼拾徙。今天在安裝Python Ta-Lib庫時(shí)發(fā)現(xiàn)需要安裝Ta-Lib cpython的支持(大概是這個(gè)意思吧),所以需要先進(jìn)行一步操作
brew install ta-lib
然而電腦版本升太快,新版本的macOS引入一個(gè)名為SIP(System Integrity Protector)的機(jī)制慕嚷,導(dǎo)致homebrew無法使用偶宫。卸載后重裝也沒辦法再次安裝非迹,會報(bào)出一個(gè)
Failed during: git init -q
的錯(cuò)誤。在查詢過程中纯趋,發(fā)現(xiàn)了一個(gè)比較好的解決方案憎兽。原文來自:How to fix permission issues on Homebrew in OS X El Capitan?我僅僅是搬運(yùn)翻譯一下。
當(dāng)你升級到Mac OS X El Capitan(來自本人注:包括以后的macOS High Sierra以及macOS Mojave)后吵冒,就無法再使用Homebrew了纯命。作為一個(gè)經(jīng)常使用homebrew 的人來說,我完全理解這種感受痹栖。
導(dǎo)致這些權(quán)限問題的原因是因?yàn)樘O果對Mac OS X El Capitan(同上)做出的一種名為SIP(System Integrity Protector亿汞,系統(tǒng)完整保護(hù))的新改變。更多SIP的信息可以直接前往本文的結(jié)尾揪阿。
如何解決Homebrew在Mac OS X El Capitan(同上)的權(quán)限問題:
如果你已經(jīng)創(chuàng)建了usr/local
目錄疗我,直接在終端中運(yùn)行這行指令:
sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
(本人:然鵝,我并不能~~~~南捂,直接上后面的步驟了)
第一步
重啟計(jì)算進(jìn)進(jìn)入恢復(fù)模式(在啟動(dòng)時(shí)按住Cmd+R)吴裤,然后進(jìn)入到終端中(是的你以后都必須進(jìn)入到恢復(fù)模式,因?yàn)檫@是目前關(guān)閉SIP的唯一途徑)
第二步
在終端中輸入以下指令
csrutil disable
第三步
重啟回到系統(tǒng)中
第四步
一旦Mac重啟溺健,打開終端麦牺,運(yùn)行以下指令
sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
(本人注:有/usr/local 文件的把前面mkdir /usr/local
刪掉就好)
第五步
以上操作完成后,你將需要重啟進(jìn)入到恢復(fù)模式中鞭缭,然后在終端輸入以下指令
csrutil enable
第六步
現(xiàn)在重啟進(jìn)入到系統(tǒng)中
第七步
你就能對/usr/local
文件進(jìn)行寫入剖膳,homebrew也會正常使用了。
請注意
你如果不需要安裝homebrew在usr/local
或者其他系統(tǒng)保護(hù)的文件中缚去,無視以上操作潮秘。
更多關(guān)于SIP- System Integrity Protector
有了SIP,你就不能對/usr
,/System
,和/bin
文件進(jìn)行寫入易结,哪怕你擁有root權(quán)限或者你已經(jīng)以root用戶登錄枕荞。
根據(jù)蘋果的文檔,/usr/local
文件將有root:未來的macOS系統(tǒng)更新都會有之前一樣的輪轉(zhuǎn)限制權(quán)限(原文:wheel restricted permissions搞动,PS:這段翻譯得真的爛)躏精。
Homebrew的團(tuán)隊(duì)已經(jīng)獲悉了這個(gè)問題,他們將會在不久的將來添加brew doctor的檢查鹦肿,會提醒了關(guān)于這些事情的警告矗烛。