iOS基础之ruby2.3.0安装cocoapods(未解决)

前言

在一台版本为10.11.6的苹果电脑上安装cocoapods,出现了非常多的令人头疼的异常,这篇文章记录了所遇到的错误

正文

issue . ERROR: While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

如果使用https这样的路径就会出现这个异常,有人说ruby2.3.0不支持openssl,如文章《编译的 Ruby 2.3.0 缺少 openssl 支持的解决方法 (已解决) 》

这篇文章说只能在usr/bin/下面找到openssl可执行文件,而没有对应目录,需要去官网下载openssl.org. 可惜没有具体讲清楚步骤,我在另外地方搜到这篇安装openssl的文章《Mac 升级 OpenSSL 安装 Tengine》

可是在移除原来系统只带的openssl的时候出现了Operation not permitted 问题。解决办法是进入recovery mode .如文章《Mac OS X 11中的/usr/bin 的“Operation not permitted”》

可是谁能告诉我,无论怎么试都进不去(另外一台macbook pro 可以,它的系统版本是10.11.5)?正如下面这个仁兄说的,真是说到我心里去了,只不过我明天不只是打算卖电脑,我还打算远离苹果。

MacBook Pro :: Can’t Access Recovery Mode To Erase HD

I can not access the recovery mode. If I reset my MAC while holding “command-R” it just brings me to the desktop. If I reset holding “option” it will show me the HD but no recovery option. If I access the disk recovery from the desktop, any option to erase HD is greyed out. I have done all system updates and I can’t access the internet recovery option either….
I’m planning on selling my Macbook tomorrow!
Info:
MacBook Pro (13-inch Mid 2010), Mac OS X (10.6.8) (没有解决办法)

我尝试过将ruby2.3.0 降到2.0.0时,出现了OSS SSL 证书验证失败 。 然后执行gem -v 发现版本是2.6.3以下的,想升级rubygem,执行命令gem update –system发现提示update to the latest RubyGems version,然后gem -v 一看又是2.6.3以下。(后面弃之不管)。在我后面不知道做了什么操作的时候,突然发现2.0.0可以添加淘宝源了,结果控制台提示说,cocoapods需要ruby版本2.2.2。

现在进行的步骤是要删除openssl 0.9.8,然后将安装好的最新openssl,使用命令sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl 最终能用openssl version 命令看到我最新的版本
再进入ruby2.3.0安装目录(在执行ruby安装命令的时候,会在控制台显示一个安装的目录,这里是磁盘-用户-自己的用户-.rvm - src-ruby-2.3.0)

$ cd ruby-2.3.0
$ ./configure  --with-openssl-dir=/usr/local/ssl
$ make
$ sudo make install

当然后面是我的猜想,按照预感来说一定还有有别的异常在等着我的,所以我就不弄了,&_&

——— update at 2016/9/20
今天还是不死心,终于将openssl 替换成下载过来的最新的版本,使用openssl version 可以查看到这个版本。上面说一直用command+R进不去recovery mode, 原来我之前执行这个命令的时候,跳到一个选择语言的窗口,这个和网上说的真的有很大的出入,仔细观察这个选择语言的窗口,下面有一个箭头,我按回车,就直接来到了我需要的那个OS X utilities窗口了。安装上面的连接,我成功的安装了openssl, 但是ruby2.3.0版本不支持openssl,需要重新bulid,这个异常Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources 这么一看把解决办法都和我说了(安装openssl,重构建ruby)。
现在的是如何重构ruby ,让它能使用openssl。情况和《编译的 Ruby 2.3.0 缺少 openssl 支持的解决方法 (已解决) 》。真的一模一样,可惜按照他的办法我还是得到了那个该死的异常。
而我按照Ruby在cmd下中文显示乱码以及不支持OpenSSL的问题解决 ,在执行ruby extconf.rb的时候也出现文章所说的没有找到s sl.h,然后在这个命令后面指明了之前安装的openssl,命令如: ruby extconf.rb –with-openssl-include=/usr/local/ssl/include/ –with-openssl-lib=/usr/local/ssl/lib
接着执行make && make install ,但是出现 了Nothing to be done for `all’. 提示。网上说这句提示是说明你已经编译好了,而且没有对代码进行任何改动。然后让我make clean 再执行make,可是不管用,还是一样的提示。这里就执行不下去了,不知道让ruby 和 openssl关系搞上没~~

又一次将ruby版本弄到2.2.2,绑定数据源的时候终于又出现了之前那个证书问题`SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://rubygems-china.oss-cn-hangzhou.aliyuncs.com/specs.4.8.gz)

ignore:反思一下自己思考问题和解决问题的方式
我发现我提问题没有问到点上。今天百度,google搜来搜去就这几篇文章,然后很失望,没能找到解决办法,然后认为这个错误很特殊,不知道如何去解决。第二天换种提问方式,却发现更多的自己需要的文章。
解决问题的过程中,卡在一个地方而下面展开不了,比如上面进入recovery mode,比如ruby的rebuild然后就尝试找其它办法,绕来绕去这里面浪费我大量时间。
当自身情况出现和解决问题的步骤有差异的地方,又不知道如何去搜索,因为我根本不知道这个问题出现的原因所以就不能根据表象找到自己满意的解决途径。

很遗憾,花了这么久的时间还是没能解决~ 问题解决没解决真的不重要,让我难过的是我解决问题的能力和方式
`

参考

OpenSSL简介及在Windows、Linux、Mac系统上的编译步骤
Ruby 中 configure 和 make讲解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值