【问题标题】:undefined method `plain_specs' for #<Bundler::RubygemsIntegration:0x00005633f09a9000> (NoMethodError)#<Bundler::RubygemsIntegration:0x00005633f09a9000> 的未定义方法“plain_specs”(NoMethodError)
【发布时间】:2020-03-04 01:47:28
【问题描述】:

我提取了我工作中的一个项目,当我尝试运行rails db:migrate 时,终端请求安装“Bundler 2”,所以我这样做了。

现在,当我尝试执行 rails db:migrate 时,出现以下错误:

/home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems-bundler/noexec.rb:84:in `setup': undefined method `plain_specs' for #<Bundler::RubygemsIntegration:0x00005633f09a9000> (NoMethodError)
    from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems-bundler/noexec.rb:124:in `check'
    from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems-bundler/noexec.rb:131:in `<top (required)>'
    from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:168:in `require'
    from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:168:in `rescue in require'
    from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:178:in `require'
    from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems_executable_plugin.rb:4:in `block in <top (required)>'
    from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/executable-hooks-1.5.0/lib/executable-hooks/hooks.rb:50:in `block in run'
    from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/executable-hooks-1.5.0/lib/executable-hooks/hooks.rb:49:in `each'
    from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/executable-hooks-1.5.0/lib/executable-hooks/hooks.rb:49:in `run'
    from /home/acartesc/.rvm/gems/ruby-2.4.3/bin/ruby_executable_hooks:10:in `<main>'

感谢您的帮助!

【问题讨论】:

  • 问题似乎与此处描述的问题相似:stackoverflow.com/questions/24833123/… 可以通过重新生成 binstubs 来解决。
  • 重新生成 binstubs 没有帮助。我将捆绑器降级到 2.0.2,现在一切正常。我猜这是捆绑程序 2.1.0 的错误?

标签: ruby-on-rails ruby


【解决方案1】:
gem uninstall rubygems-bundler

为我工作 我正在使用捆绑器 2.1.0

参考号:https://github.com/bundler/bundler/issues/7492

显示时

ERROR:  While executing gem ... (Gem::InstallError)
    rubygems-bundler is not installed in GEM_HOME, try:
    gem uninstall -i /Users/xxxx/.rvm/rubies/ruby-2.5.7/lib/ruby/gems/2.5.0 rubygems-bundler

请运行

gem uninstall -i /Users/xxxx/.rvm/rubies/ruby-2.5.7/lib/ruby/gems/2.5.0 rubygems-bundler

【讨论】:

    【解决方案2】:

    你的红宝石版本是什么?我有同样的问题。

    我的 ruby​​ 版本是 2.6.3,我的包在这个 ruby​​ 版本中不起作用。 (Bundle 已经升级到2.0.2),

    所以我将我的捆绑包降级为版本1.17.3 并且它有效。

    我有这个解决方案会帮助你。

    【讨论】:

      【解决方案3】:

      确保您使用的是受支持的 ruby​​ 版本。我在尝试使用jruby-9.2.9 时遇到了这个问题。通过从 jruby 切换到 ruby​​,问题就消失了。

      rvm use ruby-2.5.1
      

      【讨论】:

        【解决方案4】:

        这是捆绑器版本2.1.0.pre.2的一个错误

        我卸载了 bundler gem 并安装了不同版本的 bundler gem

        $ gem uninstall bundler
        $ gem install bundler -v 2.0.2
        

        它应该可以工作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-04-24
          • 2015-05-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-01
          • 2019-06-12
          • 2013-11-14
          相关资源
          最近更新 更多