"捆绑exec spring"不能与rbenv一起使用?

s12*_*ung 10 ruby ruby-on-rails bundler rbenv

为什么不起作用bundle exec spring

我已经在调用bundle exec并返回错误.我可以bundle exec随时打电话.(这是可能的重复问题的解决方案).

我不会通过bundle update spring或卸载版本spring来更新我的Gemfile 以使其工作.我不应该被迫改变我的宝石安装.

bundle binstubs spring 也没有工作.

steve-air:finalcloud main$ spring -v
Spring version 1.3.5
steve-air:finalcloud main$ bundle exec spring -v
Spring version 1.3.4
steve-air:finalcloud main$ bundle exec spring
/Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:34:in `block in setup': You have already activated spring 1.3.5, but your Gemfile requires spring 1.3.4. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:19:in `setup'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.7/lib/bundler.rb:122:in `setup'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.7/lib/bundler/setup.rb:8:in `<top (required)>'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/spring-1.3.5/lib/spring/commands.rb:33:in `<module:Spring>'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/spring-1.3.5/lib/spring/commands.rb:4:in `<top (required)>'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/spring-1.3.5/lib/spring/server.rb:9:in `<top (required)>'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `require'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `rescue in require'
  from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39:in `require'
Run Code Online (Sandbox Code Playgroud)

复制:

  1. 安装了Ruby rebenv.
  2. 卸载所有Spring宝石.
  3. 安装较低版本的Spring(例如1.3.4).
  4. 制作一个新的Rails应用程序.
  5. 安装更高版本的Spring(1.3.5似乎已经消失,但我复制了1.3.6).
  6. 按照上面命令行中的步骤操作.

Mir*_*cea 7

经过一些探索之后,似乎可以在这里发挥一些作用:

  1. 系统安装宝石通过捆绑安装宝石和特殊行为rails
  2. 在rvm和bundle级别生成binstubs
  3. Spring 1.3.5中的奇怪行为

该问题的根本原因似乎是https://github.com/rails/spring/issues/295,已在1.3.6中修复.请参阅:https://github.com/rails/spring/blob/master/CHANGELOG.md#136

遗憾的是,事实证明你无法使用作者在问题中指定的约束来解决这个问题.