你已经激活了minitest 5.5.1,但你的Gemfile需要minitest 4.7.5。

12 浏览
0 Comments

你已经激活了minitest 5.5.1,但你的Gemfile需要minitest 4.7.5。

当我运行rails s -p 3005时,rails服务器无法工作,我得到了以下错误信息:

如果这个问题引起了问题,请报告一个bug。
/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':您已经激活了minitest 5.5.1,但您的Gemfile需要minitest 4.7.5。使用bundle exec可以解决这个问题。(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 `'
    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 `'
    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 `'
    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 `'
    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 `
'

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

很奇怪,如果我运行bundle exec rails s -p 3005,它正常工作,那为什么会发生这种情况?

如何解决这个问题?(使用rails s命令运行)

0
0 Comments

原因:出现这个问题是因为Gemfile文件中指定了需要使用 minitest 4.7.5版本,但是当前环境中已经激活了 minitest 5.5.1版本。

解决方法:可以通过以下步骤解决这个问题。

1. 执行chmod +x $rvm_path/hooks/after_cd_bundler命令,给rvm路径下的after_cd_bundler文件添加可执行权限。

2. 对于每个项目,执行bundle install --binstubs命令,安装所需的gem包,并生成binstubs。

这样就可以解决Gemfile中指定版本和当前环境版本不一致的问题了。

0
0 Comments

问题的原因是Gemfile中要求使用minitest 4.7.5,但实际上已经安装了minitest 5.5.1。解决方法是使用bundle exec运行命令来确保使用Gemfile中指定的gem版本。如果不使用bundle exec,将会使用系统中安装的gem版本。可以通过在命令前加上bundle exec来解决这个问题。另外,也可以在Gemfile中将minitest的版本升级到5.5.1,但需要注意的是minitest 5.5.1是作为其他gem的依赖项安装的,不是直接在Gemfile中指定的。

0