1

パッセンジャー + nginx を使用して Rails アプリをデプロイしています。私が抱えている問題は、バンドラーが宝石をインストールしようとしたときに宝石を見つけられないことです。たとえば、次のエラーが表示されます。

Could not find i18n-0.6.1 in any of the sources (Bundler::GemNotFound)

製品ボックスにログオンして手動で gem をインストールすると、エラーはなくなりますが、次に必要な gem が見つかりません。どうしてこれなの?私はrvmを使用していません。ここに私の設定ファイルがあります:

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    passenger_root /usr/local/lib/ruby/gems/2.0.0/gems/passenger-4.0.0.rc4;
    passenger_ruby /usr/local/bin/ruby;

    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       80;
        server_name  .treadforth.com;
        root /var/www/Tread-Forth/current/public;
        passenger_enabled on;
    }
}

編集:nginxがルートとして実行されていることを追加する必要があります。これはパスの問題である可能性がありますが、宝石を手動でインストールすると、バンドルがそれらがインストールされていることを認識できるため、わかりません。

4

1 に答える 1

1

capistrano を使用している場合は、以下の行をconfig/deploy.rb

require 'bundler/capistrano'

それを追加しない限り、デプロイbundle install中に capistrano はリモート サーバー上で実行されません。--deploymentまた、すべての gem を の下にインストールするオプションも追加さshared/bundleれるため、アプリ用に分離された優れた gem 環境が作成されます。

于 2013-05-10T02:12:56.240 に答える