web-dev-qa-db-ja.com

途中で中断されたRPMトランザクションはどうなりますか?

RPMパッケージA、B、Cを使用してインストールしていると想像してみてください。これらは同じ順序でインストールされます。そして、突然Bをインストールしている最中に、停電が発生しました。

1)電源を入れた後の状態について:このトランザクションはどうなりますか?再開されますか?それとも、RPMはそのトランザクションからすべてのパッケージとファイルを削除しますか?

2)ユーザーアクションに関して:RPMは上記のことを行うためにユーザーアクションを必要としますか、それともコンピューターの起動時に自動的にチェックしますか?

RPMトランザクションは、主に依存関係エラーまたはコンピューターがまだ実行されているときのエラーの観点から説明されています。

13
eclipse

これは、多くの点で広すぎる質問ですが、いくつかの事実があります。

  • yumまたはdnfを介してダウンロードされたパッケージは、yum clean packagesまたはdnf clean packages操作で削除されるまでキャッシュされます。
  • rpm経由でダウンロードされたパッケージは、手動で削除されるまでそこに残ります(一時的な/tmpファイルシステムにダウンロードされた場合を除きます。その場合、再起動後に失われます)

それでも、答えはいくつかのことに依存します。

  1. yum またはdnfトランザクションの途中でしたか?それとも直接の rpm コマンドでしたか?前者の場合、 yum-complete-transaction は保留中のすべてのアクションを終了しようとします。後者の場合も、停電時に行われた設置の正確な段階によって異なります。現在の状態に関係なく、いつでもrpm --force -Uvh $packageを実行してパッケージを再インストールすることができます。この場合の最悪のシナリオは、壊れたrpmパッケージです。

  2. 仮想パッケージは、grub、kernel、initramfs、dracut、lvm、またはルートファイルシステムへのアクセスを提供するパッケージの1つ以上ですか?この場合、最も可能性の高い結果は、他の手段で修復する必要がある起動できないシステムです。 systemrescue イメージで起動するPXE。関連するパッケージとそれらの間の依存関係に応じて発生する可能性のあるさまざまなケースの量により、正確に何が発生するかを事前に知ることは不可能です。

8
dawud