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

在我的工作电脑上,列表要长得多,但很容易解决.当我try 建议的gem pristine GEM,它告诉我它找不到Ruby ,所以我运行gem install GEM,这解决了它.

在家里,什么都不管用.

我try 过的事情,从常识和各种其他问题:

  • gem pristine GEM
  • gem pristine --all
  • 卸载并重新安装gem
  • gem update
  • gem update --system
  • bundle update
  • 卸载和重新安装bundler
  • 卸载并重新安装rails(不过,这不是Rails特有的问题.)
  • 删除~/.bundle/
  • 打开XCode并让它安装一些扩展(它确实需要这样做,但没有修复任何东西)
  • 运行brew doctor并解决所有小问题,然后运行brew updatebrew upgrade
  • gem install curb(我无法想象这颗Ruby 与这个问题有什么关系,但两个不同的人把它列为修复同一警告的最后一步.)

推荐答案

我今天遇到了这个问题——对于没有安装的gems,我收到了这样的警告!

... 事实证明,gems were是为不同的ruby安装的,而不是我用chruby激活的ruby(2.2.3 vs 2.3.1).

切换到所有不同的Ruby 并在所有Ruby 上运行gem pristine --all次解决了问题.

Ruby相关问答推荐

有没有办法把条件语句写得更干净?

使用 RSpec 测试嵌套哈希时随机排序数组的匹配

PDFNet:Ubuntu 16.04 和 Ubuntu 20.04 上 PDF 输出文本的词序不同

将 pp 的结果(或输出到控制台的任何内容)放入字符串

独立于 Rails 使用 HAML 文件中的布局

C# 中的 typeof 保留字是否有 Ruby 类似功能?

我应该签入.ruby-gemset和/或.ruby-version吗?

Ruby 中的 class() 与 type()

Ruby on Rails 中是否有简写 if(没有 else)语句?

差异 - unless/if

Ruby 2 中的命名参数

如何使用 Ruby 2.3 中引入的 Array#dig 和 Hash#dig?

git,Heroku:预接收挂钩被拒绝

使用 Ruby 将大写字符串转换为标题大小写

带有添加和删除参考的 Rails 迁移

正则表达式,如何匹配多行?

*nix 是什么意思?

=== 与 == 在 Ruby 中

如何使用 Ruby 删除回车?

在Ruby中按哈希值降序排序