Rails 3.0.0、Passenger 2.2.15:
gem 'Paperclip', :git => 'git://github.com/lmumar/Paperclip.git', :branch => 'Rails3'
をGemfileに追加しますbundle install
を実行Rails/script server
で始まるすべての問題はなく、アクセスも機能しますgit://github.com/lmumar/Paperclip.git(Rails3)はチェックアウトされていません。 bundle install
を実行してください(Bundler :: GitError)
bundler pack
(助けにはならない)を試して、BUNDER_HOMEを〜/ .bundler(Paperclip gitはbundler install
によってそこにインストールされます)を.htaccessとconfig/*。rbのさまざまな場所に設定しましたが、これも成功しませんでした。
〜/ .bundlerは、Railsプロジェクト(Passengerがこのユーザーで実行されます)プロジェクトと同じユーザーが所有しているため、権限の問題になることはありません。Sudoはbundle install
によってインストールされ、呼び出されます。
ヒントはありますか?
解決策(数時間かかった):
マーレ確かにRails_ROOT/.bundle/config
(SetEnvなどは私には機能しませんでした)には以下が含まれます:
---
BUNDLE_PATH: /home/xxxxx/.bundler
BUNDLER_PATHではなくBUNDLE_PATHに注意してください! DISABLED_SHARED_GEMS = 1エントリもあったため、削除しました。
次に、Bundlerは、Passengerからロードされた場合でも正しいパスを認識します。 Passengerがなければ、常に機能しました(質問で述べたように、/ home/xxxxx/.bundlerを使用しました)
私はこの問題を抱えていました、使用して解決してください
bundle --deployment
ベンダー/バンドルに宝石をインストールします
システムの宝石ではなく、bundle install --path vendor/bundle
を使用して宝石をローカルにインストールできます。
ただし、システムgemを使い続けたい場合は、Apache構成の1行でPassengerにシステムgemの場所を通知します。
SetEnv GEM_HOME /Users/bob/.bundle
GEM_HOMEを設定してPassengerを使用する にある私のブログには、もう少し手の込んだ記事があります。
Sinatraアプリの作成中にこの問題に遭遇しました。それを解決するために、この行をconfig.rに追加しました。
require 'bundler/setup'
私は同じ問題を抱えていましたが、それはRVMの権利の問題が原因でした。
Webサーバーを実行するユーザーは、GIT gemが使用可能かどうかを確認できません。ウェブユーザーを利用して「乗客」として実行するため、このチェックは行えません。
私が見つけた解決策は、Webユーザーをrvmグループに追加することでした:
usermod -a -G rvm Apache
これが、GEMを「ベンダー/バンドル」にデプロイしたくない他の人々の助けになることを願っています。
私は旅客の宝石とそのApacheモジュールをSudoユーザーとしてインストールしましたが、私の場合はそれが問題でした。
最初にSudoを使用したのは、railscastsのエピソード122からコードをコピーしたからです。Soduアクセスなしでインストールすると、この問題は解決しました。 Rubyは、システムにSudoアクセスなしでrvmを使用してインストールされたため。