Mac上更新Ruby

sauce_xxoo發表於2017-12-22

在專案中要適配iOS10,要使用cocoapods更新第三方庫,而目前使用的ruby版本是Mac系統自帶的1.8.7

所以需要對ruby進行升級。這裡使用rvmruby進行升級,升級過程如下:

1、安裝 rvm

rvm:Ruby Version ManagerRuby版本管理器,包括Ruby的版本管理和Gem庫管理(gemset)。

curl -L get.rvm.io | bash -s stable  
複製程式碼

等待一段時間後就可以成功安裝好rvm

source ~/.bashrc  
source ~/.bash_profile  
複製程式碼

測試是否安裝正常

rvm -v  
複製程式碼

Paste_Image.png

2、用rvm升級ruby

Paste_Image.png

檢視當前ruby版本

ruby -v  
ruby 2.3 
複製程式碼

列出已知的ruby版本

rvm list known  
複製程式碼

3、安裝ruby 2.3

rvm install 2.3
複製程式碼

安裝完成之後ruby -v檢視是否安裝成功。

下面總結一下,更新ruby遇到的問題:

問題一:

Paste_Image.png

意思就是你要安裝cocoapods,你的ruby 環境版本必須大於等於2.2.2

於是,我輸入了gem --version,結果出來的版本號是2.6.0,這明明大於2.2.2,怎麼還提示版本太低呢。結果一查才知道rvm是用來管理ruby的,ruby的其中一個“程式”叫rubygems,簡稱gem,而用來管理專案的gem的,叫bundle。完全是不同的東西,他們相同的只是都可以管理gem,所以說不能用這個。

輸入rvm listruby的版本好像是1.9.8,看來是cocoapods沒騙我。接下來的工作就是升級cocoapods了。

解決方法:

解除安裝home-brew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
複製程式碼

Paste_Image.png

然後,在執行

rvm install 2.3
複製程式碼

這樣ruby就升級好了。 然後,cocoapods就可以正常安裝了。

sudo gem install cocoapods
複製程式碼

問題二:

在執行rvm install 2.3的時候,報下面這個錯誤。

15C1C2DF7FBC53F7E45BE9C348E1DC31.jpg
解決問題:

升級安裝openssl

首先,來看看我們的openssl的版本和目錄

openssl version
OpenSSL 0.9.8zh 14 Jan 2016

which openssl
/usr/local/bin/openssl
複製程式碼

通過上面的檢視,明顯我們的版本號太低了,於是google了下,得到下面的結果。 首先更新homebrew

brew update
Updated Homebrew from e3986e9 to 21ce7a5.
==> Migrating Homebrew to v0.9.9
...
複製程式碼

看到這個資訊,就是成功的在更新了,這個過程可能比較久點。更新完之後,我們開始通過homebrew安裝openssl

$ brew install openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2h.el_capitan.b
######################################################################## 100.0%
...
==> Summary
?  /usr/local/Cellar/openssl/1.0.2h: 1,691 files, 12M
複製程式碼

當最後顯示?那個標誌,說明我們成功的將openssl安裝到/usr/local/Cellar/openssl/1.0.2h。 不過,我們還有最後一步,那就是當我們使用openssl時,使用的是我們用homebrew新下載的openssl。 直接將openssl軟連結到/usr/local/bin/openssl

#如果/usr/local/bin/openssl下存在,則先刪除 /usr/local/bin/openssl
$ rm /usr/local/bin/openssl
#將以前通過homebrew下載的1.0.2e版本的openssl連結到/usr/local/bin/openssl
$ ln -s /usr/local/Cellar/openssl/1.0.2e/bin/openssl /usr/local/bin/openssl
$ openssl 
OpenSSL 1.0.2e 3 Dec 2015
複製程式碼

問題三:

19851124-DE38-44A5-9948-6F3F4615FE55.png

開啟/Users/zzh/.rvm/log/1470726877_ruby-2.3.0/package_install_automake.log檔案,發現是automakeautoconf雖然安裝了,但是沒有連結上。

解決方法:

於是google了下,得到下面的結果,需要安裝rvm額外的檔案。

rvm get head
複製程式碼

Paste_Image.png

真是一步一個坑啊,需要檢測rvm執行的環境。

rvm requirements
複製程式碼

相關文章