0

Rails アプリをデスクトップから共有ホストに移動していますが、gem の依存関係で問題が発生しています。

これをenvironment.rbで宣言しました:

config.gem "icalendar"

アプリのコンソールを最初に起動しようとしたとき、gem を rake:install するよう要求するエラー メッセージが表示されました。共有ホスティングの gem インストール プロセスを使用して ~/ruby/gems に gem をインストールし、gem がそこにあることを確認しました。

ls -rlt ~ruby/gems/gems/icalendar-1.1.0/
total 64
drwxr-xr-x 4 user user  4096 Dec 12 13:15 docs/
drwxr-xr-x 3 user user  4096 Dec 12 13:15 ../
drwxr-xr-x 5 user user  4096 Dec 12 13:18 test/
drwxr-xr-x 3 user user  4096 Dec 12 13:18 lib/

(ここで実際のユーザー/グループを手動で置き換えました)

次に、これを environment.rb に追加しました。

ENV['GEM_PATH'] = "/home/USER/ruby/gems"

(繰り返しますが、実際のユーザーは置き換えられました)

次にスクリプト/コンソールを実行したとき、アプリは正常に読み込まれました。次に、サーバーを起動しようとしたところ、次のエラーが発生しました。

Missing these required gems:
icalendar

You're running:
ruby 1.8.7.22 at /usr/bin/ruby
rubygems 1.3.5 at /home/USER/ruby/gems, /usr/lib/ruby/gems/1.8

パスを少し調整してみましたが、効果はありませんでした。私はこことグーグル全体を少し調べましたが、この問題に直接対処するものは何も見当たりませんでした.コンソールとサーバーの両方が環境設定でGEM_PATHを使用すると思います. 権限の問題のようにも見えません。何か案は?これを手伝ってくれてありがとう。

4

3 に答える 3

0

同様の状況で(サーバーの起動時に、一部のパスが LO​​AD_PATH 変数に含まれていませんでした)追加

require 'rubygems'

他の宝石を含める前に私を助けました。

または、宝石へのパスを手動で追加できます

$LOAD_PATH << '/home/USER/ruby/gems/gems/icalendar-1.1.0/lib'
于 2009-12-14T09:21:48.163 に答える
0

初期化ブロックの前に必ず環境変数を設定してください。

ENV['GEM_PATH'] = '...'
Gem.clear_paths

Rails::Initializer.run ...
于 2009-12-14T16:02:08.473 に答える
0

Passenger を使用している場合は、小さなトリックを使用して GEM_PATH 環境変数を機能させる必要があります。このチュートリアルに従ってください。

于 2009-12-14T08:07:27.923 に答える