Rails:生产环境在Passenger中工作,但在控制台上不工作



我们有一个在服务器上运行Rails 3.0.14的应用程序,该服务器同时承载暂存和生产环境(使用Debian Linux和Apache 2)。部署是使用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只是浏览所有的宝石并说"一切都很好"。但与登台环境相比,我知道共享捆绑包目录中缺少一些gem(与工作的登台环境相比)。

如何强制Bundler重新安装所有必需的gem,即使它假设一切正常?它似乎没有"强制"开关。

谢谢!

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

生产树中的"railties"gem似乎被标记为已安装,但它安装的目录有一半是空的(与临时树相比)。Bundler一直坚称它安装得很好,但有一半的库文件丢失了,由于"railties"提供了命令行和脚本支持,这正是不存在的。

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

谢谢你的评论,它们帮助我找到了正确的方向。

相关内容

最新更新