brew 回退記錄

brew 安裝當前版本不提供的軟件版本記錄

因爲一些緣由,須要用到Python和一些相關的庫,因而晚上抽空把本身本本上新建一個環境。而以前因爲看到3.7.0的發佈,一句 brew upgrade python 更新到 Python 3.7.0。java

整個過程以下:在工做區建了一個Python的虛擬環境,3.x的,安裝依賴吧,結果在執行 pip install scikit-learn 的時候,報了一堆錯!!!Python版本,是3.x的啊,以前還好好地啊!!第一反應是是否是缺了什麼東西,錯誤信息裏這個找不到那個找不到的。而後查錯誤信息時發現碰到這個問題的幾乎是用的Python3.7。接着在scikit-learn 的 issues中發現了pip install fails (compile error) with Python 3.7rc1,算了,仍是退回到上一個版本吧。接下來一不當心手賤把以前的安裝記錄也所有給幹掉了(emmmmm,就當是清理環境了),從新安裝吧。。。。。node

方式

brew search

經過brew search <name>來查找是否存在所須要的軟件和相應的版本。一般存在多個版本的時候會以<name>@<version>的形式來提供以前版本的相應的軟件,可是很不巧,Python3.6.x的並未單獨提供。python

brew switch

其實這個作法是須要舊的版本存在的狀況下才可以生效。可是很不巧,手賤把舊的版本也都刪除了。brew switch 的具體操做參考這篇文章:brew管理node的版本git

釜底抽薪的作法

到這裏就要先說一下 brew 的結構了,安裝好的 brew 目錄爲 /usr/local/Homebrew/,對應管理工具安裝的路徑爲/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core,其中管理python安裝的是Formula/python.rb,這是一個經過git管理的工程,因此能夠將其回退到以前的提交併臨時關閉更新來獲取所須要的python版本。接下來就是去查找對應的提交併回退,接下來執行如下指令來臨時關閉更新,並安裝python,安裝所需的python版本便可。github

# 設置不自動 update
export HOMEBREW_NO_AUTO_UPDATE=1
brew install python
相關文章
相關標籤/搜索