Yum 的設計方式(或底層系統)是否允許您在運行時安全地升級二進位檔案?例如,您有 MySQL 5.5,並且您正在執行yum -y install mysql56-server
升級到 MySQL 5.6,它通常不會抱怨。這是否意味著可以這樣做?任何需要的庫或二進位檔案是否已經載入到進程的記憶體上下文中?
答案1
升級包將會改變目前的內容磁碟,但不會改變什麼是在記憶中已經。您必須重新啟動服務才能載入新版本的二進位。
是否可以取決於應用程式。它會在某個時刻嘗試動態載入尚未載入的函式庫嗎?那個圖書館還會存在嗎?圖書館是否會發生某種變化而不再運作?
如果它是你關心的東西(例如mysql),我想不出有什麼理由不安全並在更新包之前停止它。由於更新不會影響正在運行的進程,直到重新啟動為止,因此您並沒有避免必須關閉服務。
答案2
一般來說,更新的工作方式是刪除並重新安裝檔案的新版本。根據標準 UNIX/Linux,在關閉該檔案的所有開啟實例之前,不一定會刪除已刪除的檔案。運行正在更新的二進位檔案的事物(注意共享庫)不應受到影響。
話雖如此......但是,如果您完全擔心完整性,我會在升級之前停止相關的關鍵操作和程序。
如果您真的想做好準備,無論如何都要準備好備份。