更新:この問題はまだ解決されていません!助けていただければ幸いです!05/07/2015更新:回避策が見つかりました。自分の回答を参照してください05/09/2015
レーキすると、このエラーが発生しました。
AllenLins-MacBook-Pro:geoblacklight allenlin$ rake -t
Resolving dependencies...
You must `gem install bundler` and `bundle install` to run rake tasks
rake aborted!
LoadError: cannot load such file -- rspec/core/rake_task
/Users/allenlin/Documents/USpatial/geoblacklight/Rakefile:12:in `require'
/Users/allenlin/Documents/USpatial/geoblacklight/Rakefile:12:in `<top (required)>'
/Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/2.2.0/rake/rake_module.rb:28:in `load'
/Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/2.2.0/rake/rake_module.rb:28:in `load_rakefile'
/Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/2.2.0/rake/application.rb:689:in `raw_load_rakefile'
/Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/2.2.0/rake/application.rb:94:in `block in load_rakefile'
/Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling'
/Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/2.2.0/rake/application.rb:93:in `load_rakefile'
/Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/2.2.0/rake/application.rb:77:in `block in run'
/Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling'
/Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/2.2.0/rake/application.rb:75:in `run'
/Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/gems/2.2.0/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
/Users/allenlin/.rbenv/versions/2.2.2/bin/rake:23:in `load'
/Users/allenlin/.rbenv/versions/2.2.2/bin/rake:23:in `<main>'
ただし、「gem install bundler」と「bundle install」を実行しました。rspec/ core/rake_taskが実際に存在します
AllenLins-MacBook-Pro:geoblacklight allenlin$ gem which rspec/core/rake_task
/Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/gems/2.2.0/gems/rspec-core-3.0.4/lib/rspec/core/rake_task.rb
ここで迷ってしまいました。これについて助けてくれてありがとう!私はGemfileを添付しました:
source 'https://rubygems.org'
# Specify your gem's dependencies in geoblacklight.gemspec
gemspec
# If we don't specify 2.11.0 we'll end up with sprockets 2.12.0 in the main
# Gemfile.lock but since sass-Rails gets generated (Rails new) into the test app
# it'll want sprockets 2.11.0 and we'll have a conflict
gem 'sprockets', '2.11.0'
# If we don't specify 3.2.15 we'll end up with sass 3.3.2 in the main
# Gemfile.lock but since sass-Rails gets generated (Rails new) into the test app
# it'll want sass 3.2.0 and we'll have a conflict
gem 'sass', '~> 3.2.0'
gem 'bootstrap-sass', ">= 3.2"
group :test do
# Peg simplecov to < 0.8 until this is resolved:
# https://github.com/colszowka/simplecov/issues/281
gem 'simplecov', '~> 0.7.1', require: false
gem 'coveralls', require: false
end
更新
役立つ場合は、gem envを追加します
RubyGems Environment:
- RUBYGEMS VERSION: 2.4.5
- Ruby VERSION: 2.2.2 (2015-04-13 patchlevel 95) [x86_64-darwin14]
- INSTALLATION DIRECTORY: /Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/gems/2.2.0
- Ruby EXECUTABLE: /Users/allenlin/.rbenv/versions/2.2.2/bin/Ruby
- EXECUTABLE DIRECTORY: /Users/allenlin/.rbenv/versions/2.2.2/bin
- SPEC CACHE DIRECTORY: /Users/allenlin/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/allenlin/.rbenv/versions/2.2.2/etc
- RUBYGEMS PLATFORMS:
- Ruby
- x86_64-darwin-14
- GEM PATHS:
- /Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/gems/2.2.0
- /Users/allenlin/.gem/Ruby/2.2.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- Shell PATH:
- /Users/allenlin/.rbenv/versions/2.2.2/bin
- /usr/local/Cellar/rbenv/0.4.0/libexec
- /Users/allenlin/.rbenv/shims
- /Applications/Postgres.app/Contents/Versions/9.3/bin
- /Library/Frameworks/Python.framework/Versions/2.7/bin
- /Users/allenlin/Library/Enthought/Canopy_64bit/User/bin
- /Users/allenlin/.rbenv/versions/2.2.2/lib/Ruby/gems/2.2.0/gems/bundler-1.9.6/bin
- /Users/allenlin/gradle-1.12/bin
- /usr/local/bin
- /Users/allenlin/Apache-maven/Apache-maven-3.1.1/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /opt/X11/bin
- /usr/local/git/bin
- /usr/texbin
実行中のようですbundle exec rake -t
働くでしょう。 bundler.ioごと http://bundler.io/man/bundle-exec.1.html バンドルexecを追加して、現在のコンテキストで指定されているGemを使用していることを確認することをお勧めします。こちらもご覧くださいSO post。 bundle exec rakeの意味?
後:Sudo gem install bundler
私はGemfileを作成しました:
gem 'rake'
gem 'rspec'
gem 'kramdown'
バンドルインストールしました。エラーは発生しません。
何が起こるかは、capistrano
はproduction
グループにGemバンドルのみをインストールするように構成されていることです(Gemfileと同様)。したがって、bundle install --without development test
のようなbundleコマンドを実行します。
本番環境のプロジェクトディレクトリでbundle install
コマンドを実行すると、次のようになります。
Using devise 4.2.0
Using activeadmin 1.0.0.pre4
Using responsive_active_admin 0.0.5
Bundle complete! 60 Gemfile dependencies, 133 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into /path/to/your/app/production/shared/bundle.
注意してください(開発とテストのグループの宝石はインストールされませんでした。)。
development
モードでのみインストールするrspec-Rails
gemを指定したことを思い出してください。
Rails_ENV
のように指定してみてください
# For Rails 5.0 +
Rails_ENV=production bundle exec Rails -T
# or
Rails_ENV=production bundle exec rake -T
# but this may not work
bundle exec rake -T Rails_ENV=production
Gemfileに実際にrspecがあるとすると、このエラーが発生する場合は、アプリケーションが必要とする適切なgemでrakeを実行していないことを意味します(アプリケーションのルートディレクトリからbundle exec rake
を使用して解決します)。 rspecコアgemがインストールされていないこと。
bundle install
を実行した後でもbundle exec rake
を実行しても同じエラーが発生する場合は、実際に「テストモード」gemがインストールされていることを確認してください。これは私に起こりました。
私の場合、Bundlerが--without
オプションに渡された以前の引数 ここに記されているように を思い出して奇抜な動作をするため、テスト宝石をインストールしていなかったので、 bundle install
を実行するときにすべてのgemを再インストールしますが、実際には(たとえば...)--without development test
も実行していて、知らない場合があります。
「Gems in the groups development and test was not installed。」のようなものを確認します。 bundle install
出力の最後に。
バンドルオプションをリセットするには、./.bundle
ディレクトリを削除するだけです(つまり、rm -r ./.bundle
)。これでbundle install
は通常に戻り、rakeが機能するはずです。
私のgemファイルではrspecのバージョンを指定せず、古いバージョンを取得したため、この問題が発生しました。私のgemファイルをそれに更新しました:
gem 'rspec', '3.8.0'
そしてそれはうまくいった!