5

environment.rbファイルで次のgemが定義されています。

  config.gem "authlogic"
  config.gem "paperclip"
  config.gem "pauldix-feedzirra", :lib => "feedzirra", :source => "http://gems.github.com"
  config.gem 'whenever', :lib => false, :source => 'http://gemcutter.org/'

ローカルコンピューターにインストールしていて、すべてが正常に機能しています。私は共有サーバー(DreamHost)で作業しているので、それらを機能させるためにそれらのgemを解凍する必要があります(それらを機能させるために自分のコンピューターで行ったようにそれらをインストールすることはできません)。

アップロードする前に、ローカルマシンで次のコマンドを実行しました。

rake gems:unpack

これにより、次のフォルダが作成されました/vender/gems

authlogic-2.1.3, paperclip-2.3.1.1, pauldix-feedzirra-0.0.18, whenever-0.4.1

ですから、それらはすべてそこにあるように見えます。

ただし、サーバーで実行するrake db:migrateと、次のエラーが発生します。

Missing these required gems:
  pauldix-feedzirra

何らかの理由で、feedzirraの解凍された宝石が検出されません。なぜこれが起こっているのか、そして潜在的な解決策について誰かが手がかりを提供できますか?

ありがとう!


編集:ありがとう、しかしenvironment.rbに入れるコードは機能せず、bundlerは私のサーバーに正しくインストールされません。他に何か提案はありますか?

4

4 に答える 4

2

これは正確な答えではありませんが、config.gem を正しく動作させることができなかったので、できる限りBundlerを使用することをお勧めします。それはうまく機能し、宝石間の相互依存性をうまく処理します。また、私が理解していることから、Rails 3 の config.gem も置き換えます。

于 2010-04-10T04:50:24.147 に答える
1

まず、feedzirra は他の 3 つの gem に依存しており、そのうちの少なくとも 1 つがネイティブ拡張機能をビルドしています。そして、私はそれを「feedzirra」と呼ぶつもりです - 私はgithubのよく考えられていない自動パッケージ化の大失敗のファンではありません.

前者だけの場合は、 rake gems:unpack:dependencies でうまくいくでしょう。

ただし、少なくとも縁石 (feedzirra が依存している) は拡張機能を構築しており、それらを単純に展開することはできません。Dreamhost にインストールしてもらうか (頑​​張ってください)、ユーザーのローカルの gem ディレクトリにインストールすることができます。

そのためには、.gemrc を更新して、次のような行が含まれていることを確認する必要があります: :user_install: true

次に、gem をレーキします:install

展開環境で実行可能ファイルをビルドできない場合を除き、制限の少ないパッケージをシェルアウトする必要があります.

(そして、展開されているlibcurlの別の問題があります...)

于 2010-05-26T09:14:12.147 に答える
0

feedzirraはコンパイルされた拡張機能であるため(CURLに対して)、私のヒントが役立つかどうかはわかりません。より良い解決策は、通常、サーバーにfeedzirra gem(それ自体がコンパイルされます)をインストールすることです。


feedzirra gemをインストール(解凍)していませんが、pauldix-feedzirraをインストールしています。おそらく、feedzirraも開梱する必要があります。

追加してみてください

config.gem feedzirra

environment.rbに移動し、ローカルで実行します

rake gems:install
rake gems:unpack

feedzirra開梱された宝石がにないよう/vendor/pluginsです。それらのコマンドの後にfeedzirraがそこにコピーされるかどうかを確認してください...

于 2010-04-19T17:14:11.787 に答える
0

フォローしてみてください。このコードをenvoirment.rbに入れてください

  config.load_paths += Dir["#{RAILS_ROOT}/vendor/gems/**"].map do |dir| 
    File.directory?(lib = "#{dir}/lib") ? lib : dir
  end
于 2010-04-10T04:14:14.420 に答える