背景
Railsを利用していた時のトラブルシュートです。
新しくrailsのプロジェクトを作成した時に、
いきなりrakeのタスクが使用できなくなり、
解決するのに時間がかかったので、メモで記述します。
内容
とある時にいつも通りにrails new して、
何気なくscaffold を実行すると、以下のエラーが発生した。
$ rails g scaffold item
/root/.rbenv/versions/2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- bundler/setup (LoadError)
from /root/.rbenv/versions/2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /usr/share/nginx/hoge/vendor/bundle/ruby/2.2.0/gems/spring-1.6.1/lib/spring/commands.rb:33:in `<module:Spring>'
from /usr/share/nginx/hoge/vendor/bundle/ruby/2.2.0/gems/spring-1.6.1/lib/spring/commands.rb:4:in `<top (required)>'
from /root/.rbenv/versions/2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /root/.rbenv/versions/2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /usr/share/nginx/hoge/vendor/bundle/ruby/2.2.0/gems/spring-1.6.1/lib/spring/application.rb:77:in `preload'
from /usr/share/nginx/hoge/vendor/bundle/ruby/2.2.0/gems/spring-1.6.1/lib/spring/application.rb:143:in `serve'
from /usr/share/nginx/hoge/vendor/bundle/ruby/2.2.0/gems/spring-1.6.1/lib/spring/application.rb:131:in `block in run'
from /usr/share/nginx/hoge/vendor/bundle/ruby/2.2.0/gems/spring-1.6.1/lib/spring/application.rb:125:in `loop'
from /usr/share/nginx/hoge/vendor/bundle/ruby/2.2.0/gems/spring-1.6.1/lib/spring/application.rb:125:in `run'
from /usr/share/nginx/hoge/vendor/bundle/ruby/2.2.0/gems/spring-1.6.1/lib/spring/application/boot.rb:18:in `<top (required)>'
from /root/.rbenv/versions/2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /root/.rbenv/versions/2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from -e:1:in `<main>'
結論をいうと、sprockets-railsの3.0.0が原因らしい。
### 確認する。
$ bundle show |fgrep sprockets-rails
* sprockets-rails (3.0.0)
### 削除する。
$ gem uninstall sprockets-rails
You have requested to uninstall the gem:
sprockets-rails-3.0.0
rails-4.2.5 depends on sprockets-rails (>= 0)
sass-rails-5.0.4 depends on sprockets-rails (< 4.0, >= 2.0)
web-console-2.2.1 depends on sprockets-rails (< 4.0, >= 2.0)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN] y
Successfully uninstalled sprockets-rails-3.0.0
### Gemfileに追加する。
$ echo "gem 'sprockets-rails', '2.3.3'" >> Gemfile
### bundle update をする。
$ bundle update sprockets-rails
### 確認する。
$ bundle show |fgrep sprockets-rails
* sprockets-rails (2.3.3)
### 再度scaffoldする
$ rails g scaffold item
という流れでうまく処理が通りました。