前提已经安装好了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
大功告成!