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'.
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
編集
dnf
をgdbm
AND gdbm-libs
に変更するには、gdbm
を説得する必要があるようです。試してください:
dnf install gdbm gdbm-libs --best --allowerasing
注: centos7-centos8アップグレード手順を試しましたが、複数の問題が発生しました。この移行が機能する前に、かなりの数のパッケージを削除する必要がありました。これは、ファイルがパッケージから変更されたとき、名前が変更されたときなどに発生する問題です。この部分が機能するようになったので、残りはかなりうまくいくはずです。幸運を。
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を続行できます。