YUM壊れた取引

YUM壊れた取引

RHEL 7で一定時間が経過した後にYUMを使用して更新すると、サーバーへの接続が中断され、YUMセッションが画面上で実行されないため、YUMトランザクションは正しく完了しません。

--> Processing Conflict: firewalld-0.4.4.4-6.el7.noarch conflicts selinux-policy < 3.13.1-118.el7
--> Finished Dependency Resolution
You could try using --skip-broken to work around the problem
** Found 157 pre-existing rpmdb problem(s), 'yum check' output follows:
audit-2.7.6-3.el7.x86_64 is a duplicate with audit-2.6.5-3.el7_3.1.x86_64
audit-libs-2.7.6-3.el7.x86_64 is a duplicate with audit-libs-2.6.5-3.el7_3.1.x86_64
audit-libs-python-2.7.6-3.el7.x86_64 is a duplicate with audit-libs-python-2.6.5-3.el7_3.1.x86_64
bash-4.2.46-29.el7_4.x86_64 is a duplicate with bash-4.2.46-21.el7_3.x86_64
32:bind-libs-9.9.4-51.el7_4.2.x86_64 is a duplicate with 32:bind-libs-9.9.4-50.el7_3.1.x86_64
32:bind-libs-lite-9.9.4-51.el7_4.2.x86_64 is a duplicate with 32:bind-libs-lite-9.9.4-50.el7_3.1.x86_64
32:bind-license-9.9.4-51.el7_4.2.noarch is a duplicate with 32:bind-license-9.9.4-50.el7_3.1.noarch
...

したがって、取引は完了しておらず、一部のパッケージは2つのバージョンでリストされています。

この状態では、yum update以下を報告します。

# yum update
Loaded plugins: product-id, search-disabled-repos
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).

そして取引は失敗しました。

この問題を解決する方法については、ソリューションを参照してください。

ベストアンサー1

問題を解決するには、次のコマンドを使用できます。

$ yum history redo force-reinstall last --setopt=protected_multilib=false

これはyum、パラメータを使用して最後のトランザクションを再実行することを意味しますforce-reinstall。すべての場合に必要ではないかもしれません--setopt=protected_multilib=false(私の場合はgrub2パッケージの問題によるものです)。

トランザクションは、プロセス中に2回リストされたパッケージについていくつかのエラーを報告できますが、完了し、RPMステータスが正しいと表示されます。

しかし、Yumはまだ完了していない取引について文句を言います(しかし、もはや失敗しません)。これで安全に取り外せます。

$ yum-complete-transaction --cleanup-only

現在、YUMは通常の業務を再開しました。

おすすめ記事