2

Passenger を使用して RoR アプリを DreamHost ホスティング アカウントにデプロイしようとしていますが、起動して実行するのに問題があります。

私のアプリケーションには、「amazon-ecs」と「nokogiri」という 2 つのカスタム gem が必要です。DreamHost wiki ( http://wiki.dreamhost.com/Freezing_Gems ) の指示に従って、gem を構成ファイル (config.gem "nokogiri") にコーディングしてベンダーに凍結し、rake gems:unpack を使用しました。それらをベンダーに組み込むコマンド。

次に、rake rails:freeze:gems を使用して Rails gem をフリーズし、サブドメインにアップロードしました。

バックトレースの最後の 7 行は次のようになります。

0   /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb   336     in `abort'
1   /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb   336     in `check_gem_dependencies'
2   /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb   170     in `process'
3   /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb   113     in `send'
4   /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb   113     in `run'
5   ./config/environment.rb     9   
6   /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb     31  in `gem_original_require'
7   /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb     31  in `require'

私の設定ファイルは次のようになります。

RAILS_GEM_VERSION = '2.3.3' unless defined? RAILS_GEM_VERSION
require File.join(File.dirname(__FILE__), 'boot')

Rails::Initializer.run do |config|
config.gem "nokogiri"
config.gem "amazon-ecs"
config.time_zone = 'UTC'
end

宝石との一歩を踏み外しましたか?私は正しい軌道に乗っていますか?

4

4 に答える 4

5

ネイティブの拡張機能を持つ gem をアプリで販売することはできません。また、DH では config.gem も正しく機能しない可能性があります。独自の ruby​​gem をインストールして、アプリでそれを使用する必要があります。これを見ることをお勧めします:

http://railstips.org/2008/11/24/rubygems-yours-mine-and-ours

DH で環境をセットアップするための優れた手順が記載されています。サーバーのアップグレード後、先週これを行う必要がありましたが、まだ適用されています。

于 2009-09-17T18:36:06.613 に答える
0

最近デプロイしたアプリで同じバックトレース(乗客エラーページ)を取得しました。私が依存していた宝石の1つ(config.gem)を見つけることができなかったことが判明しました...レーキの宝石がそこにあると言っていたにもかかわらず([I] test-unit = 1.2.3)。

Dreamhostのサポートにより、宝石を凍結/開梱してみることをお勧めしました。それはおそらくうまくいったでしょう(フリーズした他の宝石を見つけるのに問題はありませんでした)が、何らかの理由でrake gems:unpackは私のために何もしていなかったので、私はその構成をコメントアウトすることになりました.gem lineはとにかく本番環境では必要なかったので、うまくいきました。

したがって、他の誰かがこのエラーを受け取っている場合は、宝石の1つが見つからないことを強く示しています。config.gemの行を、機能し始めるまで、または別のエラーが発生するまで、一度に1つずつコメントアウトしてみてください。

于 2009-09-16T22:49:14.020 に答える
0

それで、/ vendor/railsと/vendor/ plugins / nokogiriとamazon-ecsが存在し、あなたには大丈夫ですか?もう一度試してみてください。今回は、次のように構成でgemの正確なバージョンを指定します。

config.gem "nokogiri", :version => "1.0"

または宝石がGithubにある場合

config.gem "tenderlove-nokogiri", :version => "1.0", :lib => "nokogiri", :source => "http://gems.github.com"

バックトレースはあまり役に立たないようですが、正確には何が起こっているのでしょうか。:-)

于 2009-09-15T14:50:00.583 に答える
0

先週、DreamHost で問題が発生しました。Gem が見つからないために、動作中の Rails アプリが突然動作しなくなりました。サポートに連絡したところ、次のような回答がありました。

サーバーにいくつかの変更が加えられたようで、システムにインストールされた ruby​​gem のほとんどが本来あるべきように再インストールされていません。手動で sqlite3 gem をインストールしましたが、これを処理する管理者がこれを調べて、インストールされなかった理由を突き止める必要があります。動作していないと思われるものがさらにいくつかある場合は、その間の一時的なギャップとしてそれらをインストールする可能性を検討できます.

同じことの影響を受けている可能性があります。サポートに連絡して調べてみてください。

于 2010-02-03T21:31:39.337 に答える