web-dev-qa-db-ja.com

yumの更新に失敗した後に重複を削除するにはどうすればよいですか?

CentOSシステムでパッケージを更新しようとしたときに、おそらくメモリが不足しました。更新を実行しようとすると、スタックしました。

Error: Package: glibc-devel-2.17-157.el7_3.5.x86_64 (@updates)
           Requires: glibc-headers = 2.17-157.el7_3.5
           Removing: glibc-headers-2.17-157.el7_3.5.x86_64 (@updates)
               glibc-headers = 2.17-157.el7_3.5
           Updated By: glibc-headers-2.17-196.el7.x86_64 (base)
               glibc-headers = 2.17-196.el7
 You could try using --skip-broken to work around the problem
** Found 75 pre-existing rpmdb problem(s), 'yum check' output follows:
audit-2.6.5-3.el7_3.1.x86_64 has missing requires of audit-libs(x86-64) = ('0', '2.6.5', '3.el7_3.1')

重複するパッケージがたくさんあるようです。 yum history undo 48を使用して更新を元に戻そうとしましたが、「ダウングレードに失敗しました:this-or-that-package.x86-64」というメッセージが大量に表示されます。だからそれは助けにはならなかった。私も試しました:

package-cleanup --cleandupes

50個のパッケージを削除するように求められますが、結果は次のようになります。

ERROR with transaction check vs depsolve:
systemd = 219-42.el7_4.1 is needed by (installed) systemd-sysv-219-42.el7_4.1.x86_64
systemd = 219-42.el7_4.1 is needed by (installed) systemd-sysv-219-42.el7_4.1.x86_64
openssh = 7.4p1-12.el7_4 is needed by (installed) openssh-clients-7.4p1-12.el7_4.x86_64
openssh = 7.4p1-12.el7_4 is needed by (installed) openssh-clients-7.4p1-12.el7_4.x86_64
iptables = 1.4.21-18.0.1.el7.centos is needed by (installed) iptables-services-1.4.21-18.0.1.el7.centos.x86_64
Complete!
(1, [])

これを修正する方法がわかりません。最も重要なのは、ダウンタイムが制限されていることと、定期的に更新を再インストールできることです(サーバーとして使用されているため)。誰かがこれらの依存関係の問題を解決するためのいくつかのステップを提案できることを願っています。

uname -a
Linux Host.example.com 3.10.0-123.8.1.el7.x86_64 #1 SMP Mon Sep 22 19:06:58 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
1
Roderik

一部のパッケージがインストールされているが、古いパッケージがまだ削除されておらず、「トランザクション」が終了していない可能性があるため、package1が古すぎてpackage2をサポートできないという奇妙な状態になっています。

私は似たようなものを持っていましたが、1つのパッケージだけでした。それはちょうど私に言ったsystemd conflicts with dracut-033-502.el7yum check重複パッケージも多数報告されています)。

これを解決するために、dracutのバージョンを確認しました。

rpm -vqa | grep dracut

...次に、最も高いバージョンを削除して、以前のバージョンにダウングレードしました。これにより、競合するパッケージが削除されました。あれから:

package-cleanup --dupes

...重複を取り除き、最後に:

yum update

...すべてを更新し、通常はすべてのエラーを修正します。

2
Ralph Bolton