2012-08-28 96 views
0

我們有一個在Rails 3.0.14上運行的應用程序,該應用程序承載分段和生產環境(使用Debian Linux和Apache 2)。使用Bundler和Capistrano以及多級擴展完成部署。這兩種環境都可以從Apache Passenger中正常運行,並且生產環境被積極使用。Rails:生產環境適用於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 重新安裝所有必需的寶石,即使它假設一切都很好?它似乎沒有「強制」開關。

謝謝!

+0

嘗試使用'bundle rails console staging' – house9

+1

運行時會發生什麼情況:RAILS_ENV = production rails c –

+0

另外,您還說生產和開發之間的寶石不同。如果你有一個小組,那麼情況就是這樣:在你的Gemfile中開發,你不依賴那個塊中的任何寶石是你? –

回答

0

我發現了這個錯誤,但我仍然不知道這是怎麼發生的。

看起來生產樹中的'railties'gem被標記爲已安裝,但它安裝的目錄是半空的(與分段樹相比)。 Bundler堅持認爲它安裝得很好,但有一半的庫文件丟失了,因爲'railties'提供了命令行和腳本支持,這正是不存在的。

我還不明白Bundler如何以這種方式半安裝gem,但至少我能夠通過從暫存系統中複製丟失的文件來解決這種情況。

謝謝你的所有意見,他們幫助我找到正確的方向。

+0

用捆綁軟件提交錯誤? https://github.com/carlhuda/bundler/blob/1-2-stable/ISSUES.md –

相關問題