在项目中要适配iOS10
,要使用cocoapods
更新第三方库,而目前使用的ruby
版本是Mac
系统自带的1.8.7
。
所以需要对ruby
进行升级。这里使用rvm
对ruby
进行升级,升级过程如下:
1、安装 rvm
rvm:Ruby Version Manager
,Ruby
版本管理器,包括Ruby
的版本管理和Gem
库管理(gemset
)。
- curl -L get.rvm.io | bash -s stable
- 复制代码
等待一段时间后就可以成功安装好rvm
。
- source ~/.bashrc
- source ~/.bash_profile
- 复制代码
测试是否安装正常
- rvm -v
- 复制代码
2、用rvm
升级ruby
查看当前ruby
版本
- ruby -v
- ruby 2.3
- 复制代码
列出已知的ruby
版本
- rvm list known
- 复制代码
3、安装ruby 2.3
- rvm install 2.3
- 复制代码
安装完成之后ruby -v
查看是否安装成功。
下面总结一下,更新ruby
遇到的问题:
问题一:
意思就是你要安装cocoapods
,你的ruby
环境版本必须大于等于2.2.2
。
于是,我输入了gem --version
,结果出来的版本号是2.6.0
,这明明大于2.2.2
,怎么还提示版本太低呢。结果一查才知道rvm
是用来管理ruby
的,ruby
的其中一个“程序”叫rubygems
,简称gem
,而用来管理项目的gem
的,叫bundle
。完全是不同的东西,他们相同的只是都可以管理gem
,所以说不能用这个。
输入rvm list
,ruby
的版本好像是1.9.8
,看来是cocoapods
没骗我。接下来的工作就是升级cocoapods
了。
解决方法:
卸载home-brew
- ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
- 复制代码
然后,在执行
- rvm install 2.3
- 复制代码
这样ruby
就升级好了。 然后,cocoapods
就可以正常安装了。
- sudo gem install cocoapods
- 复制代码
问题二:
在执行rvm install 2.3
的时候,报下面这个错误。
升级安装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
- 复制代码
问题三:
打开/Users/zzh/.rvm/log/1470726877_ruby-2.3.0/package_install_automake.log
文件,发现是automake
和autoconf
虽然安装了,但是没有链接上。
解决方法:
于是google了下,得到下面的结果,需要安装rvm额外的文件。
- rvm get head
- 复制代码
真是一步一个坑啊,需要检测rvm
运行的环境。
- rvm requirements
- 复制代码