我有一個錯誤,有時運行bundle install
如何從Ruby腳本和捕獲錯誤
Bundler::GemspecError: Could not read gem at /path/to/cache/gem It may be corrupted
時,我有一個網頁的URL過濾器,似乎在下載寶石,如果我刪除(阻止初次嘗試運行包有問題的緩存文件並再次運行,它工作)。此外,緩存文件的內容是來自Web網頁過濾器頁面的HTML。
我想不必刪除緩存文件並重新運行,如果發生這種情況,我想讓捆綁器自動重新運行。
我想過從ruby腳本運行bundle,但我似乎無法捕獲錯誤。
我需要在Docker中自動執行我的項目構建。
begin
puts "Starting bundle install"
system %w[bundle install]
rescue Bundler::GemspecError => e
puts e
end
但是,我似乎無法拯救異常;拋出的錯誤是:
Bundler::GemspecError: Could not read gem at /Users/lewis/.rvm/gems/[email protected]/cache/rack-2.0.3.gem. It may be corrupted.
An error occurred while installing rack (2.0.3), and Bundler cannot continue.
Make sure that `gem install rack -v '2.0.3'` succeeds before bundling.
未捕獲異常,因爲我沒有輸出。我被告知這是因爲我現在在Ruby世界之外運行捆綁軟件可以這麼說。
任何人都可以提供如何我會去了解這個請
感謝
的可能的複製[紅寶石系統命令檢查退出代碼(https://stackoverflow.com/questions/18728069/ruby-system-command-check-exit-code) –