说一下为啥会遇见这么个问题,我在给一个xcode项目添加podfile的时候,在终端执行了pod init命令,随即给了我一个如下图的提示(报错信息一样的,执行pod的命令早就被解决问题过程中频繁的下载过程刷上去了。。。)
刚看到这个问题的时候,我在网上搜了一些答案,很多都是让升级homebrew的,于是执行brew upgrade
$ brew upgrade
经过漫长的安装后,执行ruby --version命令就出现了第一张图的报错。。。,看起来还是ruby本身的问题,那么,我们重新安装ruby环境
执行命令
$ brew install ruby
执行后,控制台输出如下图,可能中间还安装了部分依赖,导致时间很久,这里建议设置终端代理,不然很容易安装失败
安装完成后,我就直接去试了一下执行pod,结果还是不得行,还是熟悉的报错。。。
绝望,仔细看了一下控制台输出的错误,发现在.rvm路径下有rubies目录,这个目录下,是不是说明rvm有可能和ruby的版本控制有关系啊,我百度搜了一下rvm,果然是ruby的版本控制器,可以使用 -v显示当前ruby版本,于是执行rvm -v指令看一下当前ruby版本
一开始我还没留意这段输出是啥意思,但是想着没有报错,就重新执行了一边ruby -v的指令,不出意外依旧是之前引用错误的那段报错输出,我开始注意上面的输出信息,信息的大致意思是我电脑里有两个版本的rvm,一个1.29.12还有一个1.29.7也就是当前在用的,日志中需要打开另一个shell终端去执行下面给出的命令。
我按照日志中写的,打开新终端并且执行 rvm reload后终端给出了如下的输出
有一个警告,不过至少绿色的字多了,证明咱们这一步至少没有引出其它问题,这个警告有可能是变量路径引发的,不过没有阻碍后续操作,我就没有管他,毕竟能用就行,这样我机子上的rvm版本切换到了最新的1.29.12
然而就当我激动地准备创建podfile的时候。。。
日!明明已经更新了,为啥还不行,md,既然更新了rvm,那就再试一次更新ruby。
本来想着直接更新到ruby 3.0.0,但是貌似我的OS X系统支持不到那么高的版本,就直接还是重装了一遍2.4.1。(当然,这次依旧没有成功。。。)
我又一次盯着报错信息看了一遍,发现其实缺失的库是gmp目录下的动态库,那么,我们重新安装gmp(我在百度没有查到这个库是干嘛的,坐等老哥老姐们解惑)。
安装完成,再试一下
这次日志输出的东西有点儿多,但是有用的只有上面的两行
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
日志告诉我们,去安装libyaml这个库,完成后重新安装ruby,那么我们照做!
首先,安装libyaml
重装ruby
至此,问题解决
说的有点儿多,啰嗦了,总结一下
1、升级homebrew
2、保证rvm版本唯一
3、确保gmp存在。不确定可以选择重装
4、确认libyaml库存在,不确定可以选择重装
5、确认ruby环境正确,可以试着重装新的ruby