重新安裝cocopods由“Abort trap: 6”引出的一系列問題

軟硬件環(huán)境:

  • Xcode:9.1
  • macOS:10.12.6

重裝cocopods的時候每個人遇到的問題可能不同,大部分人遇到或者沒遇到的問題我都碰到了(好慘??),關于我遇到的問題及找到的解決方案特在此分享出來,避免更多的人走彎路,也希望自己下次再遇到同樣問題時能快速回憶起解決方案。

在一個新創(chuàng)建的項目中使用cocopods管理第三方庫,pod init創(chuàng)建Podfile文件并添加對應的第三方庫后,執(zhí)行pod install命令,遇到了“Abort trap: 6”的提示信息,這就需要我們升級cocopods了。

sudo gem uninstall cocoapods
sudo gem install cocoapods --pre

以上兩個命令分別是卸載和安裝cocopods,在執(zhí)行第二個命令的時候我遇到了第一個問題:YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0).,這個問題在后來執(zhí)行其他命令的時候也多次遇到。應該是因為ruby版本過低,要安裝更高版本的ruby。

Snip20171208_13.png

  • rvm方法安裝Ruby

接下來我開始升級ruby,步驟如下:

  1. 查看當前ruby版本
ruby -v  //一般2.0.0
image.png
  1. 升級ruby環(huán)境,需要通過rvm安裝(也可以通過rbenv安裝,后邊也會說到),安裝rvm需要依次執(zhí)行以下命令
curl -L get.rvm.io | bash -s stable
source ~/.bashrc=
source ~/.bash_profile
  1. 列出ruby可安裝的版本信息
rvm list known
  1. 安裝一個ruby版本
rvm install 2.4.1
  1. 設置為默認版本
rvm use 2.4.1 --default

以上應該是通過rvm正常更新ruby環(huán)境的步驟,幸運的同學更新成功之后就可以更換ruby鏡像并安裝cocopods。但是!??!我是那個很不幸的同學,在第4步安裝提示以下錯誤No binary rubies available for: osx/10.12/x86_64/ruby-2.4.1.

No binary rubies available for: osx/10.12/x86_64/ruby-2.4.1.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.

為了解決這個問題,找了很多方案,在stackoverflow上也查了很久,不過能別人用了能解決問題的辦法,在我這都不行(攤手)。在這里附上我在stackoverflow找到的上關于這個問題的鏈接,里面有解決方案 #3686,#4007,里面也有提及到關于這個問題的其他issue,在這幾個issue里面看回復也會看到其他的解決方案,有興趣的同學可以認真看看這幾個issue,也全當復習英語了??。以下為一個developer遇到并提供的解決方案:

image.png

  • rbenv方法安裝Ruby

But?。。?br> 看了所有的回復和評論,也嘗試了其他人提到的解決方案,我的還是不行,沒辦法,最后改用通過rbenv安裝ruby。以下是用rbenv解決步驟,主要是按照這篇文章進行安裝的。
1.首先要安裝Homebrew,打開命令行執(zhí)行以下命令:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

在安裝Homebrew同樣遇到了問題:The remote end hung up unexpectedly,可能是因為被墻的原因,在查資料的時候看到有同學是通過掛VPN解決了,但是我窮??,沒有VPN。通過把Mac的DNS改成8.8.8.8同樣完美解決??。

Tip: 如果是通過修改DNS為8.8.8.8,記得問題解決之后把DNS改回去,否則可能會引起其他意想不到的問題,我是連不上公司的SVN服務器了,在其他人都沒有問題的情況下很顯然是我這邊的問題,恢復DNS之后立馬可以連上。
  1. 因為要用rbenv安裝Ruby,安裝完Homebrew之后開始安裝rbenv
brew install rbenv ruby-build

安裝ruby的時候提示我要安裝Xcode命令行工具,根據(jù)提示進行安裝即可。工具安裝完成之后再次執(zhí)行brew install rbenv ruby-build命令安裝rbenv。


xcode-select--install.png
  1. 開始安裝ruby
rbenv install 2.4.2
rbenv global 2.4.2
ruby -v //查看當前ruby的版本

使用ruby -v查看當前ruby版本的時候,應該是我們最新設置默認版本,此處應該是2.4.2,如果是我們設置的版本就沒問題,可以開始更新ruby鏡像。

However~~,我安裝成功并設置默認版本之后,任然是2.0.0??(雖然我不死心的試了兩遍):


Snip20171208_12.png

查資料,使用以下命令可以更改默認的ruby版本

rbenv local 2.4.2

執(zhí)行完之后再查看ruby版本已經(jīng)修改


image.png

這個時候就可以更新ruby鏡像了??。

  • 更新Ruby鏡像

由于之前使用的是https://ruby.taobao.org/,而taobao Gems 源已停止維護,現(xiàn)由 ruby-china 提供鏡像服務

  1. 首先把ruby升級到最新
sudo gem update --system
  1. 查看當前Ruby鏡像
gem sources -l
Snip20171207_2.png
  1. 添加ruby-china鏡像
gem sources -a https://gems.ruby-china.org/

執(zhí)行這個命令的時候,又遇到問題了ERROR: While executing gem ... (Errno::EACCES) Permission denied - /Users/xxxx/.gemrc,如下:

Snip20171208_4.png

解決方案是打開finder,command+shift+G輸入路徑,/Users/pan/.gemrc找到.gemrc文件,直接刪除(就是這么暴力??),再次執(zhí)行添加ruby-chin鏡像的命令,成功!

  1. 刪除原來的ruby鏡像,我原來的ruby鏡像是https://ruby.taobao.org/,不知道是不是更新ruby的原因,后來變成了https://rubygems.org/
gem sources --remove https://rubygems.org/

刪除完之后再次使用gem sources -l命令查看會發(fā)現(xiàn)只有ruby-china一個鏡像,接下來可以安裝cocopods。

  • 安裝cocopods

  1. 安裝本地庫
sudo gem install -n /usr/local/bin cocoapods
  1. 安裝本地庫(這個過程可能會巨慢,請耐心等待,不知道是不是前邊經(jīng)歷了太多的曲折,所有的運氣都攢在這一步,竟然用時兩分鐘完成??!)
pod setup

到此為止,重裝cocopods已經(jīng)全部完成,可以新建Xcode項目使用。由于有些問題沒有截圖保存,寫的有點亂,見諒,如有錯誤請指正。??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容