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