Ruby on rails 忽略bcrypt-3.1.11,因为它的扩展未生成。Try:gem pristine bcrypt——版本3.1.11

Ruby on rails 忽略bcrypt-3.1.11,因为它的扩展未生成。Try:gem pristine bcrypt——版本3.1.11,ruby-on-rails,ruby,rubygems,Ruby On Rails,Ruby,Rubygems,在MacOS Sierra[2016年9月22日] 通过rvm将ruby升级到5.3.1,然后选中ruby-v ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16] 然后我尝试使用gem安装rails gem install rails -v 5.0.0.1 它显示错误 Ignoring bcrypt-3.1.11 because its extensions are not built. Try: gem prist

在MacOS Sierra[2016年9月22日]

通过rvm将ruby升级到5.3.1,然后选中ruby-v

ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16]
然后我尝试使用gem安装rails

gem install rails -v 5.0.0.1
它显示错误

  Ignoring bcrypt-3.1.11 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.11
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-8.2.2 because its extensions are not built.  Try: gem pristine byebug --version 8.2.2
Ignoring capybara-webkit-1.11.1 because its extensions are not built.  Try: gem pristine capybara-webkit --version 1.11.1
Ignoring debug_inspector-0.0.2 because its extensions are not built.  Try: gem pristine debug_inspector --version 0.0.2
/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': incompatible library version - /Users/chutipongroobklom/.rvm/gems/ruby-2.3.1/gems/io-console-0.4.6/lib/io/console.bundle (fatal)
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/user_interaction.rb:9:in `<top (required)>'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/command.rb:10:in `<top (required)>'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/command_manager.rb:8:in `<top (required)>'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/gem_runner.rb:9:in `<top (required)>'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/bin/gem:9:in `<main>'
忽略bcrypt-3.1.11,因为未构建其扩展。Try:gem pristine bcrypt——版本3.1.11
忽略调用方0.7.2的绑定,因为它的扩展未生成。Try:gem-pristine绑定调用方的调用方--0.7.2版
忽略byebug-9.0.5,因为它的扩展未构建。Try:gem pristine byebug——9.0.5版
忽略byebug-8.2.2,因为它的扩展未构建。Try:gem pristine byebug——版本8.2.2
忽略capybara-webkit-1.11.1,因为它的扩展未构建。试试:gem Pristite capybara webkit——版本1.11.1
忽略debug_inspector-0.0.2,因为未生成其扩展。Try:gem pristine debug_inspector——版本0.0.2
/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:“require”中:不兼容的库版本-/Users/chutipongroobklom/.rvm/gems/ruby-2.3.1/gems/io-console-0.4.6/lib/io/console.bundle(致命)
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in“require”
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/user\u interaction.rb:9:in`'
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in“require”
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in“require”
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/command.rb:10:in`'
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in“require”
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in“require”
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/command\u manager.rb:8:in`'
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in“require”
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in“require”
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/gem_runner.rb:9:in`'
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in“require”
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in“require”
from/Users/chutipongroobklom/.rvm/rubies/ruby-2.3.1/bin/gem:9:in`'
  • 发生什么事了
  • 根本原因是什么
  • 接下来我该怎么办
  • 我如何防止将来出现此错误

  • 提前感谢您

    可能在更新期间您还安装了新的XCode,它包括构建扩展所需的libs。但在您接受XCode许可证并安装新组件之前,它不会起作用。XCode将在第一次运行时为您执行此操作

    所以,首先运行XCode,接受许可,安装缺少的组件(XCode应该自动询问您是否愿意安装它们)

    可能需要重新安装ruby。(此处描述:)

    重新启动控制台

    如果这是您第一次在系统上安装Ruby和Ruby on Rail,我建议您阅读以下内容:

    可能在更新期间,您还安装了新的XCode,它包括构建扩展所需的lib。但在您接受XCode许可证并安装新组件之前,它不会起作用。XCode将在第一次运行时为您执行此操作

    所以,首先运行XCode,接受许可,安装缺少的组件(XCode应该自动询问您是否愿意安装它们)

    可能需要重新安装ruby。(此处描述:)

    重新启动控制台

    如果这是您第一次在系统上安装Ruby和Ruby on Rail,我建议您阅读以下内容:

    我花了一天时间试图解决一个类似的问题。问题可能来自当前ruby版本或旧版本中
    ~/.gem/ruby
    文件夹中的
    .gem
    冲突。要解决此问题,您可以通过以下方式手动删除这些文件夹并重新安装rails gems:
    
    rm-rf~/.gem/ruby/
    gem安装绑定器
    捆绑安装
    

    下次使用该ruby版本时,将重新生成该文件夹。如果您使用的是ruby软件包管理器(即Chruby),那么您应该能够在应用程序中切换ruby版本,并查看哪些ruby版本会出现警告,并且只能通过上面的命令删除该版本的gems


    我发现的其他解决方案建议在所有现有ruby版本上运行
    gem pristine-a
    ,但这似乎并没有解决我这边的问题。

    我只是花了一天时间试图解决一个类似的问题。问题可能来自当前ruby版本或旧版本中
    ~/.gem/ruby
    文件夹中的
    .gem
    冲突。要解决此问题,您可以通过以下方式手动删除这些文件夹并重新安装rails gems:
    
    rm-rf~/.gem/ruby/
    gem安装绑定器
    捆绑安装
    

    下次使用该ruby版本时,将重新生成该文件夹。如果您使用的是ruby软件包管理器(即Chruby),那么您应该能够在应用程序中切换ruby版本,并查看哪些ruby版本会出现警告,并且只能通过上面的命令删除该版本的gems


    我发现的其他解决方案建议在所有现有ruby版本上运行
    gem pristine-a
    ,但这似乎并没有解决我这边的问题。

    重新安装当前的gem,问题就会得到解决

    就我而言,我使用

    rvm reinstall ruby-2.2.5
    

    重新安装您当前的gem并发布wil
    gem pristine -a
    bundle install
    bundle update
    
    # gem 'spring'
    # gem 'spring-watcher-listen', '~> 2.0.0'