最近需要安装一个新的插件,但是一直报错,在网上找到的原因是pod 版本太低用pod --version 一看pod 版本为。1.5.3
按照以往的套路 sudo gem install cocoapods 去更新pod; 然而发现事情并没有那么简单。
出现了如下错误
首先排查了gem 源的问题
运行gem source -l 查看当前的源有哪些,一运行发现有三个源,
https://gems.ruby-china.org
http://gems.ruby-china.org/
https://gems.ruby-china.com/
什么鬼,我什么时候加了这么多,不管了,前面两个源都已经失效,只保留最后一个,使用
gem sources --remove https://gems.ruby-china.org
移除旧的源,有时候还会存在缓存,建议大家把之间的源都移除,再重新添加源,添加源的方法,请移步参考
https://gems.ruby-china.com/
再用gem source -l 看一下,确认一下,是不是就只有一个源了。在执行sudo gem install cocoapods
这个命令,如果能成功更新,那当然是极好的。但是我如果只碰到这个问题,我就不写这篇记录了。
然后发现,还是出现这个问题,
不要慌,先看ruby 的版本
一看2.3.7 。果然ruby 版本过低,当然这个不是我看出了,面向谷歌编程的我,肯定是谷歌出来的啦
请参考这个https://stackoverflow.com/questions/60585707/gem-native-extension-error-while-installing-cocoapods
这位老哥提出了如下的解决方案
curl -L https://get.rvm.io | bash -s stable
Reopen Terminal
rvm install ruby-2.6
rvm use ruby-2.6.3
rvm --default use 2.6.3
顺利的话,按照这位老哥的方案,就能升级成功 ruby. 升级成功ruby 后,就可以按照上面的先升级gem 在通过gem 升级cocoapods.
然后我这边并没有这么简单
使用rvm install ruby-2.6 安装ruby版本的时候,会发现出现这么错误
安装不成功,这么一大串英文,好像也看不懂,只知道某个openssl 什么库没有安装成功,那我们先手动安装一下这个库 brew install automake libtool coreutils libyaml libksba readline zlib openssl@1.1。 发现还提示如下信息
也这一看原来是/usr/local/sbin 没有权限
先使用brew doctor 看看,确认是否是权限问题
会发现第一列,就出现个这样的警告,这个警告的意思就是我们暂时没有这个文件下的写权限,使用这个sudo chown -R (whoami) /usr/local/ 就会提示 Operation not permitted 不足,这个问题原因就是苹果从 OS X El Capitan 10.11 系统开始使用了 Rootless 机制,系统默认将会锁定 /system、/sbin、/usr 这三个目录。用户要获取这三个目录的写权限,需要关闭Rootless,详细操作步骤如下 https://www.cnblogs.com/30go/p/10416056.html 按照上述步骤开启 /usr/local/sbin 下的权限,重新安装ruby 新版本。rudy 安装成功后,查看一下rudy -v 的版本是否更新成功。再去运行sudo gem install cocoapods ,更新pods 。查看pod --version 版本,
大工告成!!