代码之家  ›  专栏  ›  技术社区  ›  Exsemt

ruby更新到2.5.0后,要求“bundler/setup”引发异常

  •  11
  • Exsemt  · 技术社区  · 7 年前

    呼叫 rake 在ruby 2.5.0更新后,从rails应用程序中,无法运行。

    $ rake
    Traceback (most recent call last):
        22: from ./bin/rake:4:in `<main>'
        21: from ./bin/rake:4:in `require_relative'
        20: from /Users/user/work/hw/relocations_app/config/boot.rb:5:in `<top (required)>'
        19: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39:in `require'
        18: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
        17: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `require'
        16: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/setup.rb:10:in `<top (required)>'
        15: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler.rb:107:in `setup'
        14: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/runtime.rb:20:in `setup'
        13: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/runtime.rb:108:in `block in definition_method'
        12: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/definition.rb:226:in `requested_specs'
        11: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/definition.rb:237:in `specs_for'
        10: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/definition.rb:170:in `specs'
         9: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/definition.rb:247:in `resolve'
         8: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/definition.rb:806:in `converge_locked_specs'
         7: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/definition.rb:874:in `expand_dependencies'
         6: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/definition.rb:874:in `each'
         5: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/definition.rb:887:in `block in expand_dependencies'
         4: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/definition.rb:887:in `each'
         3: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/definition.rb:888:in `block (2 levels) in expand_dependencies'
         2: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39:in `require'
         1: from /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
    /Users/user/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `require': cannot load such file -- bundler/dep_proxy (LoadError)
    

    配置/引导。rb型

    # frozen_string_literal: true
    
    ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
    
    require 'bundler/setup' # Set up gems listed in the Gemfile.
    

    bundler/setup 不能是必需的。

    乘客也有同样的问题,要启动rails应用程序,请执行以下操作:

    Error ID: 309814d3
      Error details saved to: /tmp/passenger-error-yCUWSg.html
      Message from application: cannot load such file -- bundler/setup (LoadError)
      /var/www/vhosts/user/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      /var/www/vhosts/user/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
      /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:456:in `activate_gem'
      /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:323:in `block in run_load_path_setup_code'
      /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:461:in `running_bundler'
      /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:322:in `run_load_path_setup_code'
      /usr/share/passenger/helper-scripts/rack-preloader.rb:100:in `preload_app'
      /usr/share/passenger/helper-scripts/rack-preloader.rb:156:in `<module:App>'
      /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
      /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'
    

    有人对ruby 2.5.0有同样的问题吗?

    2 回复  |  直到 7 年前
        1
  •  33
  •   Exsemt    7 年前

    修复很简单:将RubyGems min更新到2.7.4版本

    gem update --system
    

    RubyGems 2.7.4 includes bug fixes.

        2
  •  1
  •   Matthew O'Riordan    6 年前

    遗憾的是,这里唯一的解决方案是将Bundler升级到>=1.16.1. 看见 https://github.com/heroku/heroku-buildpack-ruby/pull/738 例如,这在理论上是固定的,但不幸被Heroku阻止。

    升级到Bundler 1.16.1以上,您将不会再有任何问题。