Software-Installation

yum 原子性如何保證?

  • April 3, 2021

安裝程序確實更改了很多系統文件。如果在軟體更新過程中出現故障,系統可能無法啟動。然而,即使是簡單的單個文件寫入操作,也幾乎不可能確保原子性。所有這些在 unix 安裝程序中是如何解決的?它們是否依賴於文件系統?

yum3.2.25 或更高版本帶來了一個歷史命令來檢查、完成或回滾事務。歷史資訊位於*/var/lib/yum/history中。該yum-complete-transaction工具可用於在斷電或崩潰後完成事務或通過擦除/var/lib/yum/transaction-all/var/lib/yum/transaction-done*中維護的日誌資訊來簡單地丟棄中止的事務。

更新

原子性基於 Sqlite 數據庫提供原子性錯覺的能力。可以在題為SQLite 中的 Atomic Commit的白皮書中找到對這些技術的精彩討論。

實際上,原子更新是一個問題。yum(和 apt、pacman 等)不是原子的。幸運的是,人們正在嘗試解決方案。請參閱rpm-ostree和CoreOS atomic upgrades

引用自:https://unix.stackexchange.com/questions/130815