暴富建站,萝卜建站分类信息,网站建设资金的请示,万州网站建设多少钱文章目录 前言开发环境问题描述问题分析解决方案最后 前言
公司新到一台电脑需要配置开发环境#xff0c;在用RVM安装Ruby时遇到了一个奇怪的问题。
开发环境
RVM: 1.29.12OpenSSL: 3.1.1
问题描述
执行命令安装Ruby 3.0版本#xff1a;
rvm install ruby-3.0.0在编译阶… 文章目录 前言开发环境问题描述问题分析解决方案最后 前言
公司新到一台电脑需要配置开发环境在用RVM安装Ruby时遇到了一个奇怪的问题。
开发环境
RVM: 1.29.12OpenSSL: 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.logThere 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-dirbrew --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 openssl1.1安装成功后指定OpenSSL的版本重新执行安装Ruby的命令
rvm install ruby-3.0.0 --with-openssl-dirbrew --prefix openssl1.1结果还是不行我怀疑指定的OpenSSL版本可能没生效于是干脆通过brew uninstall openssl命令把最新版本的OpenSSL卸载了再次执行上面的命令一切正常
经测试当安装有最新版的OpenSSLbrew list中显示openssl3时Ruby 3.0怎么安装都不成功但是Ruby 3.2.1版本可以安装成功。
解决方案
如果不局限于安装Ruby 3.0版本那么可以通过安装更高的Ruby版本解决该问题可以参考这篇文章RVM - 安装最新Ruby版本。
如果一定要安装Ruby 3.0版本请安装1.1版本的OpenSSL并卸载最新版本同时指定使用HomeBrew安装的OpenSSL完成安装
安装1.1版本的OpenSSL
brew install openssl1.1卸载最新版本的OpenSSL
brew uninstall openssl指定使用HomeBrew安装的OpenSSL完成安装
rvm install ruby-3.0.0 --with-openssl-dirbrew --prefix openssl如果不想卸载最新版本可以通过brew link命令切换链接openssl的版本完成安装
安装1.1版本的OpenSSL
brew install openssl1.1切换OpenSSL的版本为1.1
brew link --overwrite openssl1.1--overwrite参数的作用是强制切换。如果不使用该参数可以先执行brew unlink openssl命令后再执行brew link openssl1.1命令完成切换。
指定使用HomeBrew安装的OpenSSL完成安装
rvm install ruby-3.0.0 --with-openssl-dirbrew --prefix openssl1.1实测这里需要指定OpenSSL的版本为1.1不然还是会报错。补充一点如果想知道当前使用的OpenSSL是什么版本可以通过openssl version命令查看。
最后
如果这篇文章对你有所帮助请不要吝啬你的点赞加星谢谢