更新到 Ruby 2.4.2 时出现 Gemset 错误



我正在使用 RVM 从 Ruby 2.0 更新到 2.4.2,并在使用 $ rvm install ruby-2.4.2 安装期间收到以下错误消息:

Making gemset ruby-2.4.2 pristine - please wait
'command gem pristine --extensions bigdecimal --version 1.3.0 gem-wrappers --version 1.3.2 io-console --version 0.4.6 json --version 2.0.4 openssl --version 2.0.5 psych --version 2.2.2' failed, you need to fix this gems manually.
Error running '__rvm_with ruby-2.4.2 gemset_pristine',
please read /Users/myname/.rvm/log/1507820191_ruby-2.4.2/gemset.pristine-ruby-2.4.2.log
Making gemset ruby-2.4.2@global pristine - please wait
'command gem pristine --extensions bigdecimal --version 1.3.0 io-console --version 0.4.6 json --version 2.0.4 openssl --version 2.0.5 psych --version 2.2.2' failed, you need to fix this gems manually.
Error running '__rvm_with ruby-2.4.2@global gemset_pristine',
please read /Users/myname/.rvm/log/1507820191_ruby-2.4.2/gemset.pristine-ruby-2.4.2@global.log

我......不太确定这意味着什么,或者我接下来应该做什么。有什么想法吗?我运行的是 macOS 10.12.6。

[编辑]:这是错误日志的副本。

根据 RVM 文档,您不会在命令中使用 ruby-。
它应该是:
$ rvm install 2.4.2我不确定这是否重要。您是否尝试过升级RVM和Homebrew?

[编辑] 根据日志文件中的此信息:

bigdecimal-1.3.0 +gemset_pristine:20> gem pristine --extensions bigdecimal --version 1.3.0
ERROR:  Loading command: pristine (LoadError)
    cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass
+gemset_pristine:21> _failed+=( 'bigdecimal --version 1.3.0' )  

看起来像一个 zlib 问题。 尝试安装(或重新安装)命令行工具。
$ xcode-select --install

github上有一个非常相似的问题 https://github.com/rvm/rvm/issues/4090它是通过运行$ brew doctor来解决

一段时间

后需要使用 SASS 后遇到了这个问题。在此期间,我升级到了El Capitan。所以Ruby是"老"的。

您可以通过运行以下内容(对最新的 Ruby 版本有一点先验知识)来削减我的很多步骤。

xcode-select --install brew install zlib rvm reinstall ruby-<latest_version> --with-zlib-dir=/usr/local/Cellar/zlib/<latest_version>


这就是我必须这样做的方式。最后我不需要卸载,但我做了很多错误的转弯。

最初,我必须运行此行以使 xcode 保持最新状态:

xcode-select --install

然后安装zlib

brew install zlib

记下 zlib 安装的目录

/usr/local/Cellar/zlib/1.2.11

下一次更新rvm

\curl -sSL https://get.rvm.io | bash -s stable --ruby

遵循这些步骤使我达到了运行最新版本的Ruby 2.4.1的地步。但 zlib 与红宝石无关。

所以最后一步是运行重新安装

rvm reinstall ruby-2.4.1 --with-zlib-dir=/usr/local/Cellar/zlib/1.2.11

找到了此 RVM GitHub 问题中引用的修复程序,该问题涉及使用 brew 安装 zlib,然后在指向该 zlib 目录的同时重新安装 ruby。正如该线程中的某人指出的那样,这应该是不必要的。仍然不确定为什么会出现问题。

步骤

$ brew install zlib
$ rvm remove 2.4.2
$ rvm install 2.4.2 —-with-zlib-dir=/usr/local/Cellar/zlib/1.2.11       

最新更新