Rails:生产环境适用于Passenger,但不适用于控制台

时间:2012-08-28 19:38:43

标签: ruby-on-rails deployment capistrano bundler production

我们在托管和生产环境(使用Debian Linux和Apache 2)的服务器上运行Rails 3.0.14。使用Bundler和Capistrano以及多级扩展来完成部署。这两种环境都可以在Apache Passenger中正常运行,并且可以积极地使用生产环境。

但是,由于某些原因,自上次部署以来我们的cron脚本停止工作,因为由于某种原因,控制台不再喜欢我们的生产环境。无论我们使用什么rakerails命令,我们总是得到

$ rails c
script/rails:6:in `require': no such file to load -- rails/commands (LoadError)
    script/rails:6

bundle install只是贯穿所有宝石,然后说#34;一切都很好"。但与登台环境相比,我知道共享捆绑目录中缺少某些宝石(与正在运行的登台环境进行比较)。

如何强制Bundler 重新安装所有必需的宝石,即使它假设一切正常?它似乎没有“力量”。开关。

谢谢!

1 个答案:

答案 0 :(得分:0)

我发现了错误,但我仍然不知道这是怎么发生的。

生产树中的'railties'宝石似乎被标记为已安装,但它安装的目录是半空的(与登台树相比)。 Bundler坚持认为它安装得很好,但是有一半的库文件丢失了,而且'railties'提供了命令行和脚本支持,这正是那里没有的。

我仍然不明白Bundler如何以这种方式半安装gem,但至少我能够通过从暂存系统中复制丢失的文件来解决这个问题。

感谢您的所有评论,他们帮助我朝着正确的方向前进。