在我的工作电脑和家用电脑上,我最近使用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.)


当前回答

这是一个老帖子,但我自己也遇到了这个问题。

你不需要重新启动你的机器,你只需要刷新你的环境,你可以用rehash命令来做到这一点:

rehash

来自手册页:rehash命令重新计算路径环境变量中列出的目录内容的内部哈希表,以考虑添加的新命令。

其他回答

我在Terminal中执行了这些命令,并为我工作:

/usr/bin/ruby -e "$(curl - ssl https://raw.githubusercontent.com/Homebrew/install/master/install)" Brew安装ruby,可能需要sudo (sudo Brew install ruby)。 echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile . bat 源~ / . bash_profile Sudo宝石原始——全部

运行Mac OS Catalina, brew和rbenv…

今天遇到了这个问题,并且看过了这里所有的答案,我最终发现了这个错误的另一个原因:

忽略nokogiri 1.10.7,因为它的扩展没有被构建。试试:gem primitive nokogiri——1.10.7版本

当然,宝石原始没有工作。

我的问题是硬编码的GEM_HOME和GEM_PATH环境变量覆盖了rbenv。

因此,检查您没有在~/.zshrc中设置GEM_PATH和GEM_HOME

在Ubuntu中,这对我来说很有效。

源~ / . bash_profile Sudo宝石原始——全部

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

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时,它重新安装了所有内容,然后命令原始—一切都按预期工作

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

rvm get stable
rvm reload

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