web-dev-qa-db-ja.com

Centos8 dnf更新トランザクションチェックエラー

dnf update centos7をcentos8にアップグレードした後、このエラーが表示されます

Error: Transaction check error:
  file /usr/lib64/libgdbm_compat.so.4.0.0 from install of gdbm-libs-1:1.18-1.el8.x86_64 conflicts with file from package gdbm-1.10-8.el7.x86_64

私は試した dnf install -y libgdbm --best --allowerasingおよびdnf install -y gdbm --best --allowerasing だが dnf updateにはまだこのエラーがあります。

どうすれば修正できますか?

更新:

dnf upgrade --best --allowerasing結果これ:

Error: transaction check vs depsolve:
(gcc >= 8 with gcc < 9) is needed by annobin-8.78-1.el8.x86_64
rpmlib(RichDependencies) <= 4.12.0-1 is needed by annobin-8.78-1.el8.x86_64
(annobin if gcc) is needed by redhat-rpm-config-120-1.el8.noarch
rpmlib(RichDependencies) <= 4.12.0-1 is needed by redhat-rpm-config-120-1.el8.noarch
To diagnose the problem, try running: 'rpm -Va --nofiles --nodigest'.
You probably have corrupted RPMDB, running 'rpm --rebuilddb' might fix the issue.
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.

https://forums.centos.org/viewtopic.php?f=54&t=7316

4
Exlord

gdbmがパッケージ化の方法を変更したようです。

古いバージョンgdbm-1.10-8.el7.x86_64は新しいgdbm-libs-1:1.18-1.el8.x86_64と同じファイルを提供するため、更新を再試行する前に、手動で消去することが最善の方法ですgdbm-1.10-8.el7.x86_64

dnf remove gdbm-1.10-8.el7.x86_64

誰かが/usr/lib64/libgdbm_compat.so.4.0.0を必要とするためにこれが機能しない場合は、より複雑なswapコマンドを使用できます。

dnf swap gdbm-1.10-8.el7.x86_64 gdbm-libs-1:1.18-1.el8.x86_64

編集

dnfgdbm AND gdbm-libsに変更するには、gdbmを説得する必要があるようです。試してください:

dnf install gdbm gdbm-libs --best --allowerasing

注: centos7-centos8アップグレード手順を試しましたが、複数の問題が発生しました。この移行が機能する前に、かなりの数のパッケージを削除する必要がありました。これは、ファイルがパッケージから変更されたとき、名前が変更されたときなどに発生する問題です。この部分が機能するようになったので、残りはかなりうまくいくはずです。幸運を。

3
Chris Maes

1台のサーバーではスワップは機能しませんでした。 7.7-> 8.0-> 8.1を介して、グリッチのないいくつかのマイナーなパッケージとGPGキーの問題を除いて、もう1つ。

8.Xで立ち往生していてアップグレードやインストールができない場合は、rpmから直接centos-relase 7を直接再インストールしてください。 http://mirror.centos.org/centos/7/os/x86_64/Packages/centos-release-7-7.1908.0.el7.centos.x86_64.rpm

これにより、gdbm-1を続行できます。

0
Phil