【问题标题】:You have already activated minitest 5.5.1, but your Gemfile requires minitest 4.7.5你已经激活了 minitest 5.5.1,但是你的 Gemfile 需要 minitest 4.7.5
【发布时间】:2015-09-19 23:56:25
【问题描述】:

rails 服务器无法与我一起使用,当我运行 rails s -p 3005 时,出现以下错误:

Please report a bug if this causes problems.
/home/badrit-user/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:33:in `block in setup': You have already activated minitest 5.5.1, but your Gemfile requires minitest 4.7.5. Using bundle exec may solve this. (Gem::LoadError)
    from /home/badrit-user/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:19:in `setup'
    from /home/badrit-user/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
    from /home/badrit-user/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/setup.rb:7:in `<top (required)>'
    from /home/badrit-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:110:in `require'
    from /home/badrit-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:110:in `rescue in require'
    from /home/badrit-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:35:in `require'
    from /home/badrit-user/work/seeloz_mobile/config/boot.rb:4:in `<top (required)>'
    from /home/badrit-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:106:in `require'
    from /home/badrit-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:106:in `require'
    from /home/badrit-user/.rvm/gems/ruby-2.0.0-p247@seeloz_mobile/gems/railties-4.1.8/lib/rails/app_rails_loader.rb:42:in `block in exec_app_rails'
    from /home/badrit-user/.rvm/gems/ruby-2.0.0-p247@seeloz_mobile/gems/railties-4.1.8/lib/rails/app_rails_loader.rb:32:in `loop'
    from /home/badrit-user/.rvm/gems/ruby-2.0.0-p247@seeloz_mobile/gems/railties-4.1.8/lib/rails/app_rails_loader.rb:32:in `exec_app_rails'
    from /home/badrit-user/.rvm/gems/ruby-2.0.0-p247@seeloz_mobile/gems/railties-4.1.8/lib/rails/cli.rb:5:in `<top (required)>'
    from /home/badrit-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:58:in `require'
    from /home/badrit-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:58:in `require'
    from /home/badrit-user/.rvm/gems/ruby-2.0.0-p247@seeloz_mobile/gems/railties-4.1.8/bin/rails:9:in `<top (required)>'
    from /home/badrit-user/.rvm/gems/ruby-2.0.0-p247@seeloz_mobile/bin/rails:23:in `load'
    from /home/badrit-user/.rvm/gems/ruby-2.0.0-p247@seeloz_mobile/bin/rails:23:in `<main>'

我检查了我的 Gemfile.lock,我已经有了minitest (4.7.5)

很奇怪,如果我运行这个bundle exec rails s -p 3005,它就可以工作,为什么会这样?

解决此问题的解决方案是什么? (使用rails s 运行它)

【问题讨论】:

  • 您是否尝试过错误消息中提到的bundle exec rails s -p 3005
  • @Зелёный 是的,我更新了我的问题
  • 尝试使用bundle install -—binstubs,然后使用rails s运行您的应用

标签: ruby-on-rails bundle minitest


【解决方案1】:

正如您从错误消息Using bundle exec may solve this. 中看到的那样

bundle exec rails s -p 3005

这很奇怪,如果我运行这个bundle exec rails s -p 3005,它就可以工作了, 那么为什么会这样呢?

在开始时使用bundle exec 运行命令,从应用程序目录启动使用Gemfile 安装的gem,如果没有bundle exec,则运行安装到系统中的gem。如您所见,您已成功在系统中安装了minitest 5.5.1,在 Gemfile 中安装了minitest 4.7.5

Ref

【讨论】:

  • 我同意你的观点,我可以将 Gemfile 中的 minitest 升级到 5.5.1 而不是 4.7.5 吗? .. 它是在 Gemfile.lock 中输入的,但不是在 Gemfile 中,它是作为另一个 gem 的依赖项安装的
【解决方案2】:

如果您还没有在 RVM 集成中使用 bundler 的 binstub,那么您应该尝试一下!

这意味着您不必再输入bundle exec

设置:

  • 一次,运行chmod +x $rvm_path/hooks/after_cd_bundler
  • 每个项目运行一次bundle install -—binstubs

【讨论】:

    猜你喜欢
    • 2011-09-13
    • 2015-10-24
    • 2017-08-22
    • 2011-11-11
    • 2017-08-29
    • 2011-09-07
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多