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 以 root 身份运行。这可能是一个路径问题,但是手动安装 gems 允许 bundle 识别它们已安装,所以我不确定。

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 回答