我们在托管和生产环境(使用Debian Linux和Apache 2)的服务器上运行Rails 3.0.14。使用Bundler和Capistrano以及多级扩展来完成部署。这两种环境都可以在Apache Passenger中正常运行,并且可以积极地使用生产环境。
但是,由于某些原因,自上次部署以来我们的cron脚本停止工作,因为由于某种原因,控制台不再喜欢我们的生产环境。无论我们使用什么rake
或rails
命令,我们总是得到
$ rails c
script/rails:6:in `require': no such file to load -- rails/commands (LoadError)
script/rails:6
bundle install
只是贯穿所有宝石,然后说#34;一切都很好"。但与登台环境相比,我知道共享捆绑目录中缺少某些宝石(与正在运行的登台环境进行比较)。
如何强制Bundler 重新安装所有必需的宝石,即使它假设一切正常?它似乎没有“力量”。开关。
谢谢!
答案 0 :(得分:0)
我发现了错误,但我仍然不知道这是怎么发生的。
生产树中的'railties'宝石似乎被标记为已安装,但它安装的目录是半空的(与登台树相比)。 Bundler坚持认为它安装得很好,但是有一半的库文件丢失了,而且'railties'提供了命令行和脚本支持,这正是那里没有的。
我仍然不明白Bundler如何以这种方式半安装gem,但至少我能够通过从暂存系统中复制丢失的文件来解决这个问题。
感谢您的所有评论,他们帮助我朝着正确的方向前进。