在我的工作电脑和家用电脑上,我最近使用Ruby -install将Ruby升级到2.3.1。我使用chruby作为Ruby切换器。

我开始在我的终端上看到这样的警告:

Ignoring bcrypt-3.1.11 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.11
Ignoring bcrypt-3.1.10 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.10
Ignoring binding_of_caller-0.7.2 because its extensions are not built.  Try: gem pristine binding_of_caller --version 0.7.2
Ignoring byebug-9.0.5 because its extensions are not built.  Try: gem pristine byebug --version 9.0.5
Ignoring byebug-5.0.0 because its extensions are not built.  Try: gem pristine byebug --version 5.0.0
Ignoring concurrent-ruby-ext-1.0.2 because its extensions are not built.  Try: gem pristine concurrent-ruby-ext --version 1.0.2
Ignoring debug_inspector-0.0.2 because its extensions are not built.  Try: gem pristine debug_inspector --version 0.0.2

在我的工作电脑上,清单要长得多,但很容易解决。当我尝试建议的gem原始gem时,它告诉我找不到宝石,所以我运行gem安装gem,这就解决了问题。

在家里,一切都不正常。

我从常识和其他Stack问题中尝试过的事情:

gem pristine GEM gem pristine --all uninstalling and reinstalling the gem gem update gem update --system bundle update uninstalling and reinstalling bundler uninstalling and reinstalling rails (Though, it's not a Rails specific problem.) deleting ~/.bundle/ opening XCode and letting it install some extensions (It did need to do it, but it didn't fix anything.) running brew doctor and solving all the minor issues, then brew update and brew upgrade gem install curb (I can't imagine what this gem has to do with this issue, but two different people listed it as the last step of their fix to the same warning.)


当前回答

这个解决方案对我的RubyMine IntelliJ很有效

我有两个不同的终端正在使用RVM和ruby<版本>。

解决方案:

我不得不将其切换到RVM版本,以便在首选项>语言和框架>Ruby SDK中消除错误

错误:

Ignoring executable-hooks-1.6.0 because its extensions are not built. Try: gem pristine executable-hooks --version 1.6.0 rubymine

Ignoring gem-wrappers-1.4.0 because its extensions are not built. Try: gem pristine gem-wrappers --version 1.4.0

其他回答

如果你像我一样使用rvm,修复可以很简单:

rvm get stable
rvm reload

如此答案https://apple.stackexchange.com/a/192513所述

卸载和重新安装的流浪者也工作。有一个卸载。工具bash脚本包含在安装程序的.dmg映像中,将删除Vagrant。

发现这个解决方案在这里:更新流浪者和宝石扩展不内置

我遇到了这个问题,并执行了与上面相同的所有命令,甚至删除了之前安装的所有Ruby版本。然而,错误仍然存在。

事实证明,在~/.gem/ruby/中有一些剩余的宝石用于各种(以前卸载的)版本。删除我不再使用的文件夹后,错误就消失了。

当你在Mac上开发然后构建Docker映像时,这也是一个问题: https://forums.aws.amazon.com/thread.jspa?messageID=879802&tstart=0

当你执行“bundle install -deployment”时,bundle将创建一个 供应商目录w/你的宝石在里面。请注意,这包括 您的宝石在本地文件夹,它将只包括本地 为您的平台扩展。如果你用的是macOS,这就是达尔文。 您需要在64位x86 linux上重复这个过程 环境。

就我而言,我试图保持原始状态——但我得到的是:

Ignoring ffi-1.11.1 because its extensions are not built.  Try: gem pristine ffi --version 1.11.1
Ignoring jaro_winkler-1.5.3 because its extensions are not built.  Try: gem pristine jaro_winkler --version 1.5.3
Ignoring psych-3.1.0 because its extensions are not built.  Try: gem pristine psych --version 3.1.0
/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': incompatible library version - /.gem/gems/psych-3.1.0/lib/psych.bundle (fatal) 

然后,我删除了Users/{{user.name}}} /⁨.gem上的内容,然后当我需要运行bundle install—force时,它重新安装了所有内容,然后命令原始—一切都按预期工作