安装Ruby的错误

前提已经安装好了RVM,直接开讲安装Ruby遇到的问题。
截止标题日期ruby最新稳定版是3.3.4,,下面安装会使用3.3.1进行示例(最新版可能会有一些兼容问题,例如一些插件并没有支持到最新版导致不能正常使用,这个遇到问题了再说吧)。
终端执行代码:

rvm install 3.3.4 
或 
rvm install ruby-3.3.4

如果遇到如下报错,是因为新版中OPENSSL1.0版本已经被废弃,需要使用OPENSSL3.0

Error running '__rvm_make -j12'
或者
Error running '__rvm_make -j8'

这时候需要使用下面的命令进行安装:

brew install openssl@3

rvm install ruby-3.3.1 --with-openssl-dir='brew --prefix openssl'
或者
rvm install ruby-3.3.1 --with-openssl-dir='brew --prefix openssl@3'

这样会安装成功!
但是!在Apple M1安装cocopods时会报下面的错误:

ERROR:  While executing gem ... (Gem::Exception)
    OpenSSL is not available. Install OpenSSL and rebuild Ruby (preferred) or use non-HTTPS sources

这是因为 ruby 没有编译 OpenSSL 支持
这里有个坑openssl 3会有问题,只有重新安装带有openssl 1.1支持的 ruby 后它才有效。记住这一点非常重要,如果你使用openssl 3其他版本,它将不起作用。
先查看一下OpenSSL 版本

ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.1.1u  30 May 2023

如果是1.1.1就没有问题,不是的话就跟着我的步骤走吧
1.安装 OpenSSL 1.1(如果尚未安装)
假设你已经安装了 home brew,你可以使用以下方式安装 OpenSSL 1.1

brew install openssl@1.1

2.使用 openssl 1.1 重新安装 ruby
如果使用 rvm
RVM 允许重新安装。因此,如果你安装了 ruby 版本,你可以运行

rvm reinstall 3.0.0 --with-openssl-dir=`brew --prefix openssl@1.1`

如果你没有安装,你可以rvm install运行rvm reinstall

将其设置为默认

rvm alias create default 3.0.0

如果使用 rbenv
首先,您需要卸载 ruby。假设您想要ruby 3.0.0,请先使用

rbenv uninstall 3.0.0

完成后,您可以再次安装支持 openssl 的 ruby。
使用openssl 1.1.0安装ruby

RUBY_CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl@1.1`" rbenv install 3.0.0

并将其设置为默认

rbenv global 3.0.0

最后检查一下

ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.1.1u  30 May 2023

大功告成!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容