開始的時候,我僅想升級一下cocoapods的版本,因為我xcode報三十多個相似警告,說第三方找不到相應文件,我看cocoapods版本有1.0.1,而我使用的依舊是1.0.0的老版本。
當我升級cocoapods時,需要使用gem來更新cocoapods,那么我就終端輸入命令:gem install cocoapods,可是終端提示我沒有權限來改動一個文件,我以為是我的權限不夠,就使用了管理員權限,sudo gem install cocoapods,可是系統依然提示我:就算你升級了權限,也不建議修改系統使用的rubygem,也建議我,如果非要更改,那么還要升級權限root級別。大學學過Linux系統,root是最高權限了,你都可以刪除系統文件,更可以自己給自己刪除掉,且是不可恢復的,或不易恢復的,我覺得為了一個cocoapods沒必要冒那么大風險。
我就開始查找有關rubygem相關資料,首先要知道是干啥的啊,其實也沒查懂,大體知道是系統用來管理軟件包的安裝和升級等一系列問題的。大家也都了解Mac電腦的系統OS X系統就是Linux的衍生體,硬盤是沒有像windows的分區概念的,所以軟件管理和文件管理要較先進一點,解放了手工管理。rubygem正是代替我們管理的一種智能工具。可是工具也是會升級的,而且OS X系統是會自帶一個ruby的,此ruby也正是之前提示我不要輕易修改的那個ruby,可是我不更改,我就升級不了cocoapods,所以必須要升級ruby。
經過了解,ruby也不是一棒子打死的,是個很靈活的管理軟件,一個電腦可以安裝多個版本ruby,為什么會這樣呢。因為軟件的升級是不同步的,維護的投入更不一樣,一個軟件升級了,他需要ruby提高管理軟件的效能,那么ruby升級了,但是有的軟件沒升級,并且依然依賴于之前老版本的ruby,所以就有了多版本ruby的問題,也擁有了版本切換功能,那么這么多的高級經理,由我們人類管理嗎?如果是這樣,就可以回歸到windows算了,文件和軟件都管理不來,還讓我管理他們的老大,這不是扯淡嗎?
rvm就是管理這些大佬的,我之前不懂rvm,更不知道這東西有啥用呢,只是從各種安裝升級的過程中,先驅們的指引,那么我就檢查。OS X被我發現一個相當有意思的功能,如果你安裝了cocoapods,那么你就在終端直接輸入pod+回車,就會輸出基本使用信息,如果你安裝了rubygem(簡稱gem),那么你就簡單輸入gem+回車,同樣輸出基本使用信息。我用類似方法,檢查是否安裝rvm,我在終端輸入rvm+回車,然而終端并沒有輸出有關信息,那么給我的感覺就是,我電腦并沒有安裝這個管理大佬的牛掰。
安裝的過程很順利,任意找了一個博客就安裝成功了,rvm+回車,有了信息了,那么我使用常用軟件查看rvm管理的rubygem版本:rvm list known輸出說我沒有安裝。
此處要說一下,也可能是我理解錯誤,因為我使用rvm list命令就顯示了當前可使用的所有ruby版本,所以我懷疑,這個牛掰好像也僅管理ruby,并不管理其他的什么東西,此處也是疑問點,求大神斧正。
當我查到有ruby的哪些版本后,我就選擇了一個較新的版本,rvm install 2.3.0,結果等了一下下就報錯了,讓我檢車brew update是否能正常運行?我就想,brew update又是什么鬼?這里不談了,因為我確實也不懂。
此時就一直報錯,我要將錯誤代碼貼出來,因為這貨困擾我兩天了,沒整過去,還害得我安裝了太多brew的什么軟件,各種brew install xxxx,以為有用呢,嗨。。。然并卵!
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.11/x86_64/ruby-2.3.0.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Installing requirements for osx.
Updating system.......
Error running 'requirements_osx_brew_update_system ruby-2.3.0',
showing last 15 lines of /Users/DuQ/.rvm/log/1471488521_ruby-2.3.0/update_system.log
??? https://github.com/Homebrew/homebrew/wiki/Common-Issues
and make sure `brew update` works before continuing.'
++ rvm_pretty_print stderr
++ case "${rvm_pretty_print_flag:=auto}" in
++ case "${TERM:-dumb}" in
++ case "$1" in
++ [[ -t 2 ]]
++ return 1
++ printf %b 'Failed to update Homebrew, follow instructions here:
??? https://github.com/Homebrew/homebrew/wiki/Common-Issues
and make sure `brew update` works before continuing.\n'
Failed to update Homebrew, follow instructions here:
??? https://github.com/Homebrew/homebrew/wiki/Common-Issues
and make sure `brew update` works before continuing.
++ return 1
No binary rubies available for: osx/10.11/x86_64/ruby-2.3.0.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Installing requirements for osx.
Updating system.......
Error running 'requirements_osx_brew_update_system ruby-2.3.0',
showing last 15 lines of /Users/DuQ/.rvm/log/1471488521_ruby-2.3.0/update_system.log
??? https://github.com/Homebrew/homebrew/wiki/Common-Issues
and make sure `brew update` works before continuing.'
++ rvm_pretty_print stderr
++ case "${rvm_pretty_print_flag:=auto}" in
++ case "${TERM:-dumb}" in
++ case "$1" in
++ [[ -t 2 ]]
++ return 1
++ printf %b 'Failed to update Homebrew, follow instructions here:
??? https://github.com/Homebrew/homebrew/wiki/Common-Issues
and make sure `brew update` works before continuing.\n'
Failed to update Homebrew, follow instructions here:
??? https://github.com/Homebrew/homebrew/wiki/Common-Issues
and make sure `brew update` works before continuing.
++ return 1
Requirements installation failed with status: 1.
我可以直接在這里繼續說嗎?我解決了,那開心,無以言表啊!
其實這也代表了我以后解決問題方向,不能完全的遇到啥問題就去百度相關關鍵字,應該認真的看問題的描述,歪果仁都在問題里寫了相關的,但是我還是去相信Google和百度是真的,我要自信!!!
上邊寫了“brew update”,但是我之前不知道brew是啥東西,所以就不敢貿然更改,以為這個brew是不是跟rvm一樣,是一個牛掰管理大佬的東西,類似于小紅帽與360管家和QQ電腦管家一樣呢,同樣的功能,但是工具不同,要是真是這樣,可不是好現象,不但他們打官司不說,也影響用戶使用這才是最主要的事。
但是后來我還是選擇相信我自己,去碰硬骨頭,啃下brew update來。brew的更新可不容,找他的資料可是找了相當久的,最后在一篇最近的文檔發現了,就一句話sudo chown -R?$(whoami)?/usr/local,救命稻草啊!
這段話輸入后,brew就可以更新了,所有問題都迎刃而解了,什么rvm安裝ruby啊,什么gem安裝cocoapods啊,通盤殺!殺殺殺!!!話說秒殺的感覺真好。
寫在后面:
這次有兩點收獲:
一個是遇到問題,先認真的看問題,雖然都是英文,先大體分析一下,而不是抓住幾個詞匯猛搜;
另一個,Linux最大的現象就是,他沒有輸出就是最好的輸出,千萬別拿起自行車的心里和技巧來騎三輪車,以為卡死了?no no no,人家在好好運行,別輕易關閉終端。
貼出幾篇大神解決問題的連接:
http://www.jianshu.com/p/b1bdb231d88f
http://www.jianshu.com/p/65e6259f5984
http://www.cnblogs.com/woojuno/p/3946051.html(不知道安裝這些brew是不是起了作用)