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-complains-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+ dnf system-upgrade reboot두 번째에도 작동합니다.

답변1

~에 따르면https://fedoraproject.org/wiki/Changes/Switch_RPMs_to_zstd_compressionZstd 압축은 Fedora 31에서 도입되었으므로 업그레이드하기 전에 Fedora 31에서 rpm-libs를 설치해 볼 수 있습니다. rpm-libs는 glibc와 같이 아직 설치되지 않은 다른 라이브러리에 의존할 수 있으므로 이것이 반드시 작동하지는 않습니다. 간단히 말해서, 나는 당신에게 쉬운 탈출구가 없다고 생각합니다. 지금 처음부터 다시 설치하는 것이 더 나은 생각일 수도 있습니다.

관련 정보