RVM问题记录 - Error running ‘__rvm_make -j10‘


前言

公司新到一台电脑需要配置开发环境,在用RVM安装Ruby时遇到了一个奇怪的问题。

开发环境

  • RVM: 1.29.12
  • OpenSSL: 3.1.1

问题描述

执行命令安装Ruby 3.0版本:

rvm install ruby-3.0.0

在编译阶段出现报错:

ruby-3.0.0 - #compiling - please wait
Error running '__rvm_make -j10',
please read /Users/xxx/.rvm/log/1688010549_ruby-3.0.0/make.log

There has been an error while running make. Halting the installation.

问题分析

这个问题看起来有点熟悉,有点像以前遇到过的问题,不过那是在安装最新Ruby版本的时候遇到的:

Error running ' CFLAGS=-O3 ...',
please read /Users/xxx/.rvm/log/1679388668_ruby-3.2.1/configure.log
There has been an error while running configure. Halting the installation.

虽然报错内容不一样,但是也没找到什么好的解决办法。姑且一试这个问题的解决方法:

rvm install ruby-3.0.0 --with-openssl-dir=`brew --prefix openssl`

不出意外,还是报一样的错误。找来自己使用的电脑和新电脑进行开发环境对比,RVM版本是一致的,不过新电脑上的OpenSSL的版本竟然是当前最新的3.1.1版本:

OpenSSL 3.1.1 30 May 2023 (Library: OpenSSL 3.1.1 30 May 2023)

OpenSSL不是我主动安装的,应该是用HomeBrew安装某个软件时因为依赖了OpenSSL而自动安装的。那么是因为OpenSSL的版本导致的报错吗?

先用HomeBrew安装一个1.1版本的OpenSSL:

brew install openssl@1.1

安装成功后,指定OpenSSL的版本重新执行安装Ruby的命令:

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

结果还是不行,我怀疑指定的OpenSSL版本可能没生效,于是干脆通过brew uninstall openssl命令把最新版本的OpenSSL卸载了,再次执行上面的命令一切正常🎉!

经测试,当安装有最新版的OpenSSL(brew list中显示openssl@3)时,Ruby 3.0怎么安装都不成功,但是Ruby 3.2.1版本可以安装成功。

解决方案

如果不局限于安装Ruby 3.0版本,那么可以通过安装更高的Ruby版本解决该问题,可以参考这篇文章RVM - 安装最新Ruby版本

如果一定要安装Ruby 3.0版本,请安装1.1版本的OpenSSL,并卸载最新版本,同时指定使用HomeBrew安装的OpenSSL完成安装:

  1. 安装1.1版本的OpenSSL
brew install openssl@1.1
  1. 卸载最新版本的OpenSSL
brew uninstall openssl
  1. 指定使用HomeBrew安装的OpenSSL完成安装
rvm install ruby-3.0.0 --with-openssl-dir=`brew --prefix openssl`

如果不想卸载最新版本,可以通过brew link命令切换(链接)openssl的版本完成安装:

  1. 安装1.1版本的OpenSSL
brew install openssl@1.1
  1. 切换OpenSSL的版本为1.1
brew link --overwrite openssl@1.1

--overwrite参数的作用是强制切换。如果不使用该参数,可以先执行brew unlink openssl命令后再执行brew link openssl@1.1命令完成切换。

  1. 指定使用HomeBrew安装的OpenSSL完成安装
rvm install ruby-3.0.0 --with-openssl-dir=`brew --prefix openssl@1.1`

实测这里需要指定OpenSSL的版本为1.1,不然还是会报错。补充一点,如果想知道当前使用的OpenSSL是什么版本,可以通过openssl version命令查看。

最后

如果这篇文章对你有所帮助,请不要吝啬你的点赞👍加星🌟,谢谢~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值