Fedora 25を32にアップグレード中に「...rpmlib(PayloadIsZstd)<= 5.4.18-1が必要」エラー

Fedora 25を32にアップグレード中に「...rpmlib(PayloadIsZstd)<= 5.4.18-1が必要」エラー

実行すると、sudo dnf system-upgrade download --refresh --releasever=32 --allowerasing次のような巨大なエラーの一覧が表示されます。

rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by python3-audit-3.0-0.19.20191104git1c2f876.fc32.x86_64
rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by kexi-3.1.0-7.fc32.x86_64
rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by kexi-libs-3.1.0-7.fc32.x86_64
rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by alternatives-1.11-6.fc32.x86_64
...

読んだ後https://serverfault.com/questions/280099/how-do-i-install-an-rpm-that-c​​omplains-about-rpmlibfiledigests-4-6-0-1Fedora-25とFedora-32の間の一部のRPMバージョンに「PayloadIsZstd」機能が導入されたためだと思います。

この問題をどのように解決できますか?

rpmファイルとrpm-libsファイルをバックアップし、Fedora 32 rpmを強制インストールしてみました(既存のバイナリが互換性があると思いますか?)。

# Probably a really stupid idea. Don't do this, it's super hard to undo.
$ sudo rpm -ivhU ~/Downloads/rpm-libs-4.15.1-3.fc32.1.x86_64.rpm ~/Downloads/rpm-4.15.1-3.fc32.1.x86_64.rpm --replacepkgs --nodeps --force --nomd5
...
error: unpacking of archive failed: cpio: Bad magic

今、中間バージョンを試してみる必要があるようです。たとえば、Fedora 30rpmにPayloadIsZstdがあるとします。

もっと良い方法がありますか?


修正する

rpm機能の依存関係を解決するために、まずFedora 30にアップグレードしてから32にアップグレードして上記の問題を解決しました。少し残った依存性の問題。最初のインストールが失敗しました(FC25で再起動)。まだパッケージがキューに入っていて、--releasever=32選択する前に最初に削除していないためです--releasever=30。簡単に繰り返すとdnf system-upgrade+2dnf system-upgrade reboot回目でも動作します。

ベストアンサー1

~によるとhttps://fedoraproject.org/wiki/Changes/Switch_RPMs_to_zstd_compressionZstd圧縮はFedora 31で導入されているため、アップグレードする前にFedora 31でrpm-libsをインストールしてみることができます。 rpm-libsはglibcなど、まだインストールされていない他のライブラリに依存する可能性があるため、これは必ずしも機能しません。簡単に言えば、私はあなたに簡単な出口がないと思います。今最初から再インストールする方が良い考えかもしれません。

おすすめ記事