bundle update rails
今日、RVM ベースのアプリを実行したところ、その過程で Rake が 10.0.3 に更新されました。rake spec
正しい RVM Ruby の代わりにシステム Ruby を使用しようとしているため、これ以上実行できません。
出力は次のとおりです。
$ bundle exec rake spec -b
/usr/local/lib/ruby -S rspec ./spec/controllers/articles_controller_spec.rb ...
rake aborted!
/usr/local/lib/ruby -S rspec ./spec/controllers/articles_controller_spec.rb ...
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rspec-core-2.12.2/lib/rspec/core/rake_task.rb:156:in `run_task'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rspec-core-2.12.2/lib/rspec/core/rake_task.rb:124:in `initialize'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/file_utils_ext.rb:61:in `verbose'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rspec-core-2.12.2/lib/rspec/core/rake_task.rb:122:in `send'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rspec-core-2.12.2/lib/rspec/core/rake_task.rb:122:in `initialize'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/task.rb:228:in `call'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/task.rb:228:in `execute'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/task.rb:223:in `each'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/task.rb:223:in `execute'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/task.rb:166:in `invoke_with_call_chain'
/Users/brandan/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/task.rb:152:in `invoke'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/application.rb:143:in `invoke_task'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/application.rb:101:in `top_level'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/application.rb:101:in `each'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/application.rb:101:in `top_level'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/application.rb:110:in `run_with_threads'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/application.rb:95:in `top_level'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/application.rb:73:in `run'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/lib/rake/application.rb:70:in `run'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/gems/rake-10.0.3/bin/rake:33
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/bin/rake:19:in `load'
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/bin/rake:19
Tasks: TOP => spec
RSpec は/usr/local/lib/ruby
、RVM にインストールされた Ruby への適切なパスではなく、シェルアウトしようとしていることに注意してください。rspec
コマンドラインから実行すると、すべてが通過します。
$ bundle exec rspec
.....................................
Finished in 1.81 seconds
37 examples, 0 failures
Rake 10.0.2 にダウングレードしましたが、この問題は発生しませんでした。ローカル マシン上の同様の Ruby バージョンの他のアプリで Rake 10.0.3 を使用して複製できます。
問題Rake::TaskLib::RUBY
は、正しく定義されていないようです。
$ bundle exec ruby -e 'require "rake/tasklib"; puts Rake::TaskLib::RUBY'
/usr/local/lib/ruby
私の環境に何が問題なのか分かりますか?
OS X 10.8.2
RVM 1.18.5
編集:より多くの環境:
$ echo $PATH
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/bin:/Users/brandan/.rvm/gems/ruby-1.8.7-p174@global/bin:/Users/brandan/.rvm/rubies/ruby-1.8.7-p174/bin:/Users/brandan/.rvm/bin:/usr/local/heroku/bin:/Users/brandan/bin:.gem/ruby/1.8/bin:/usr/local/git/bin:/usr/local/mysql/bin:/usr/local/pear/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
$ which -a ruby
/Users/brandan/.rvm/rubies/ruby-1.8.7-p174/bin/ruby
/usr/bin/ruby
$ which -a bundle
/Users/brandan/.rvm/gems/ruby-1.8.7-p174@bcl/bin/bundle
/Users/brandan/.rvm/bin/bundle
/usr/bin/bundle
$ head -n 1 $(which bundle)
#!/Users/brandan/.rvm/rubies/ruby-1.8.7-p174/bin/ruby