Ruby on rails 乘客3(带轨道3)不';不要从供应商处装载宝石/

Ruby on rails 乘客3(带轨道3)不';不要从供应商处装载宝石/,ruby-on-rails,ruby,passenger,Ruby On Rails,Ruby,Passenger,我已经用Ruby 1.9.2和Passenger 3设置了一个新环境。Rails 3应用程序与Capistrano一起部署。RAILS_ENV设置为暂存 当试图启动应用程序时,乘客抱怨缺少gem。运行 bundle --deployment 将gems安装到RAILS\u ROOT/供应商,但无法解决此错误 如果我将丢失的gem作为系统gem安装(例如sudogem安装),错误将消失,但现在gem文件中的下一个gem报告为丢失 我可以通过将gems安装到系统中来解决这个问题,但我想了解为什么

我已经用Ruby 1.9.2和Passenger 3设置了一个新环境。Rails 3应用程序与Capistrano一起部署。RAILS_ENV设置为暂存

当试图启动应用程序时,乘客抱怨缺少gem。运行

bundle --deployment 
将gems安装到RAILS\u ROOT/供应商,但无法解决此错误

如果我将丢失的gem作为系统gem安装(例如sudogem安装),错误将消失,但现在gem文件中的下一个gem报告为丢失

我可以通过将gems安装到系统中来解决这个问题,但我想了解为什么将它们安装到供应商目录中不起作用。我的理解是bundler的想法是避免将所有gems安装到系统中

我将RAILS\u ROOT/.bundle/config设置为:

BUNDLE_FROZEN: "1"
BUNDLE_PATH: vendor/bundle
BUNDLE_DISABLE_SHARED_GEMS: "1"

理想情况下,gems应该保持在一个一致的位置,以避免每次部署都重新安装它们。因此,请尝试从配置中删除
BUNDLE\u路径
(默认位置为
~/.BUNDLE

我不确定bundle--deployment的功能(我在文档中没有提到这一点)。我在部署脚本中使用类似以下命令:

after :'deploy:update_code' do
  run "cd #{release_path} && bundle install --without test cucumber development"
end

理想情况下,gems应该保持在一个一致的位置,以避免每次部署都重新安装它们。因此,请尝试从配置中删除
BUNDLE\u路径
(默认位置为
~/.BUNDLE

我不确定bundle--deployment的功能(我在文档中没有提到这一点)。我在部署脚本中使用类似以下命令:

after :'deploy:update_code' do
  run "cd #{release_path} && bundle install --without test cucumber development"
end

我能理解你的建议。我会试试看,但我想我最初的问题仍然存在:为什么乘客不在供应商/捆绑包中挑选宝石?--deployment标志在Bundler站点上有文档记录(并推荐),网址为Thank for The link(奇怪的是,
bundle--help
)。你为什么认为问题出在乘客身上?您是否尝试过在服务器上加载脚本/控制台?我可以理解您的建议。我会试试看,但我想我最初的问题仍然存在:为什么乘客不在供应商/捆绑包中挑选宝石?--deployment标志在Bundler站点上有文档记录(并推荐),网址为Thank for The link(奇怪的是,
bundle--help
)。你为什么认为问题出在乘客身上?您是否尝试过在服务器上加载脚本/控制台?