前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mac上更新Ruby

Mac上更新Ruby

作者头像
s_在路上
发布2018-09-11 17:10:55
3.4K0
发布2018-09-11 17:10:55
举报
文章被收录于专栏:iOS 开发杂谈

在项目中要适配iOS10,要使用cocoapods更新第三方库,而目前使用的ruby版本是Mac系统自带的1.8.7。所以需要对ruby进行升级。这里使用rvm对ruby进行升级,升级过程如下: 1、安装 rvm rvm:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)。

代码语言:javascript
复制
curl -L get.rvm.io | bash -s stable  

等待一段时间后就可以成功安装好 rvm。

代码语言:javascript
复制
source ~/.bashrc  
source ~/.bash_profile  

测试是否安装正常

代码语言:javascript
复制
rvm -v  

Paste_Image.png

2、用rvm升级ruby

Paste_Image.png

查看当前ruby版本

代码语言:javascript
复制
ruby -v  
ruby 2.3 

列出已知的ruby版本

代码语言:javascript
复制
rvm list known  

3、安装ruby 2.3

代码语言:javascript
复制
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 list一查, ruby的版本好像是1.9.8吧,看来是cocoapods没骗我。接下来的工作就是升级 cocoapods 了。

解决方法: 卸载home-brew

代码语言:javascript
复制
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Paste_Image.png

然后,在执行

代码语言:javascript
复制
rvm install 2.3

这样ruby就升级好了。 然后,cocoapods就可以正常安装了。

代码语言:javascript
复制
sudo gem install cocoapods

问题二: 在执行rvm install 2.3的时候,报下面这个错误。

15C1C2DF7FBC53F7E45BE9C348E1DC31.jpg

解决问题:升级安装openssl 首先,来看看我们的openssl的版本和目录

代码语言:javascript
复制
openssl version
OpenSSL 0.9.8zh 14 Jan 2016

which openssl
/usr/local/bin/openssl

通过上面的查看,明显我们的版本号太低了,于是google了下,得到下面的结果。 首先更新homebrew

代码语言:javascript
复制
brew update
Updated Homebrew from e3986e9 to 21ce7a5.
==> Migrating Homebrew to v0.9.9
...

看到这个信息,就是成功的在更新了,这个过程可能比较久点。更新完之后,我们开始通过homebrew安装openssl。

代码语言:javascript
复制
$ 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。

代码语言:javascript
复制
#如果/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文件,发现是automake和autoconf虽然安装了,但是没有链接上。 解决方法: 于是google了下,得到下面的结果,需要安装rvm额外的文件。

代码语言:javascript
复制
rvm get head

Paste_Image.png

真是一步一个坑啊,需要检测rvm运行的环境。

代码语言:javascript
复制
rvm requirements
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.09.29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档