背景:私はこの質問とこの質問を見てきましたが、残念ながら役に立ちませんでした。
エラーメッセージ(乗客):すでにラック1.1.0をアクティブ化していますが、Gemfileにはラック1.2.1が必要です。bundleexecの使用を検討してください。
私のGemfile:
source 'http://rubygems.org'
gem 'rails', '3.0.0.rc'
gem 'nifty-generators'
gem 'nokogiri'
group :after_initialize do
gem 'feedzirra'
end
私のGemfile.lockには次の行があります:
rack (1.2.1)
私のenvironment.rbの上部には次の行があります。
ENV['GEM_PATH'] = File.expand_path('~/.gems') + ':/usr/lib/ruby/gems/1.8'
私のboot.rbの上部には次の行があります。
Gem.clear_paths
ラック(1.2.1)をローカルに正しくインストールしています-アプリはローカルホストで正常に実行され、バージョン1.2.1はターミナルの「gemリスト」の後に表示されます。
アプリを本番サーバーにプッシュする前に、gemを「バンドルパッケージ」でパッケージ化しました。
デプロイする前に、次のコマンドを(本番サーバーで、アプリのルートから)実行しました。
bundle install --path vendor/bundle --local
上記のインストールコマンドに続いて、「バンドルチェック」はこれを返します。
The Gemfile's dependencies are satisfied
そして、これは乗客によって提供されたバックトレースです(上記のエラーメッセージとともに):
0 /home/user/.gems/gems/bundler-1.0.0/lib/bundler/runtime.rb 27 in `setup'
1 /home/user/.gems/gems/bundler-1.0.0/lib/bundler/spec_set.rb 12 in `each'
2 /home/user/.gems/gems/bundler-1.0.0/lib/bundler/spec_set.rb 12 in `each'
3 /home/user/.gems/gems/bundler-1.0.0/lib/bundler/runtime.rb 17 in `setup'
4 /home/user/.gems/gems/bundler-1.0.0/lib/bundler.rb 100 in `setup'
5 /home/user/gseeds.mywebsite.com/releases/20100927012812/config/boot.rb 9
6 /usr/lib/ruby/1.8/rubygems/custom_require.rb 31 in `gem_original_require'
7 /usr/lib/ruby/1.8/rubygems/custom_require.rb 31 in `require'
8 /home/user/gseeds.mywebsite.com/releases/20100927012812/config/application.rb 1
9 /usr/lib/ruby/1.8/rubygems/custom_require.rb 31 in `gem_original_require'
10 /usr/lib/ruby/1.8/rubygems/custom_require.rb 31 in `require'
11 /home/user/gseeds.mywebsite.com/releases/20100927012812/config/environment.rb 7
12 /usr/lib/ruby/1.8/rubygems/custom_require.rb 31 in `gem_original_require'
13 /usr/lib/ruby/1.8/rubygems/custom_require.rb 31 in `require'
14 config.ru 3
15 /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/builder.rb 46 in `instance_eval'
16 /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/builder.rb 46 in `initialize'
17 config.ru 1 in `new'
18 config.ru 1
誰かがこれに対する解決策を思いついたのだろうか?
注意すべき点は、サンプルのRailsアプリ(別名、Railsの新しいappNameを実行し、それをDreamHostの本番サーバーに直接FTPで転送する)が正常に実行されることです。私の実際のアプリとサンプルアプリの両方にラック(1.2.1)の依存関係があると想像しているので、これは私を混乱させます。これは、DreamHostサーバーのgemをバイパスするために、実際のアプリでのラックの実装をどういうわけかいじっていることを意味します。
サンプルのRailsアプリをDreamHostの別のサブドメインで実行しているときに、デプロイしようとしている両方の実際のアプリのサブドメインでこのエラーが発生します。
また、ベンダー/キャッシュアプローチを採用する前に、元々、DreamHostユーザーディレクトリにgemをローカルにインストールしようとしました。多分これは何にも影響しません。
この厄介な/長い質問を通して苦しんでくれてありがとう