yumの原子性はどのように保証されますか?

yumの原子性はどのように保証されますか?

インストーラは多くのシステムファイルを変更します。ソフトウェアのアップデート中に障害が発生した場合、システムが起動しないことがあります。しかし、単純な単一ファイル書き込み操作であっても、原子性を保証することはほとんど不可能です。UNIXインストーラはこれらの問題をどのように解決しますか?ファイルシステムによって異なりますか?

答え1

yum3.2.25以上は歴史トランザクションを確認、完了、またはロールバックするコマンド。過去の情報が存在します。/var/lib/yum/歴史。このyum-complete-transactionツールは、停電またはクラッシュ後にトランザクションを完了したり、保存されたログ情報を削除して、中断されたトランザクションを簡単に削除するために使用できます。/var/lib/yum/transaction-allそして/var/lib/yum/トランザクション完了

修正する

原子性は、原子性の錯覚を提供するSqliteデータベースの能力に基づいています。これらの技術の優れた議論は、以下で見つけることができます。SQLiteのアトミックコミット

答え2

実際、原子の更新は問題です。 yum(およびapt、pacmanなど)は原子ではありません。幸いなことに、人々は解決策を試しています。バラよりrpm-ostreeそしてCoreOSアトミックアップグレード

答え3

yumはトランザクションを完了するためにrpmを使用します。 rpmはアトミックではありません。 History または yum-complete-transaction は事実の後に最善を尽くそうとします。

最新バージョンのyumでLVMスナップショット機能を使用し、問題が発生した場合はブロックデバイス全体をロールバックすることもできます。ただし、実際のロールバックを実行するには、起動可能な外部LVM環境を使用する必要があります(この時点では、yum / rpm / glibcがすべてホースに接続される可能性があるため)。

アトミック保証が必要な場合は、rpmを直接使用することはできません(たとえば、ostree、0install、または複数の起動可能な環境の階層化)。

関連情報