Rails s
で正常に動作するRailsアプリがありますが、powを使用してロードしようとすると、次のエラーが発生します。
Bundler::GemNotFound: Could not find rake-0.9.2.2 in any of the sources
~/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/spec_set.rb:88:in `block in materialize'
~/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/spec_set.rb:82:in `map!'
~/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/spec_set.rb:82:in `materialize'
....
奇妙なことに、このアプリの.rvmrcファイルは1.9.3-p125
を指定しています。
which rake
.../.rvm/gems/Ruby-1.9.3-p125/bin/rake
bundle install
を実行すると、次のように表示されます。
Using rake (0.9.2.2)
FWIW、powは、1.9.2と別のgemsetを使用する別の非Railsプロジェクトで問題なく動作します。
ありがとう!
RVMを更新して、この既知の問題が発生したと思います: https://github.com/37signals/pow/issues/271
最も簡単な解決策は、プロジェクトディレクトリで実行することです。
rvm env . > .powenv
または:
cd /project/path # with .rvmrc
rvm env > .powenv
RVMを使用している場合は、ここで説明するように、プロジェクトのルートに「.powenv」という名前のファイルを追加する必要があります。
.rvmrcから.Ruby-versionおよび.Ruby-gemsetファイルに変更したときにこの問題が発生しました。
.powrcファイルを次のように変更します。
if [-f "$ rvm_path/scripts/rvm"] && [-f ".Ruby-version"] && [-f ".Ruby-gemset"]; then source "$ rvm_path/scripts/rvm" rvmuse` cat .Ruby-version` @ `cat .Ruby-gemset` fi
私はこの.powrcを使用してきました。これはすべてのベースをうまくカバーしています。
if [ -f "$rvm_path/scripts/rvm" ]; then
source "$rvm_path/scripts/rvm"
if [ -f ".rvmrc" ]; then
source ".rvmrc"
fi
if [ -f ".Ruby-version" ]; then
rvm use `cat .Ruby-version`
fi
if [ -f ".Ruby-gemset" ]; then
rvm gemset use --create `cat .Ruby-gemset`
fi
fi
ここから取得 https://Gist.github.com/nbibler/5307941 (nbiblerに感謝!)