Fedora 30에서 31로 업그레이드하려고 하는데 다음 두 단계를 성공적으로 완료했습니다.
dnf upgrade --refresh
dnf install dnf-plugin-system-upgrade
그러나 다음 작업을 수행할 때:
dnf system-upgrade download --releasever=31
... 나는 이것을 얻습니다:
Before you continue ensure that your system is fully upgraded by running "dnf --refresh upgrade". Do you want to continue [y/N]: y
Adobe Systems Incorporated 35 kB/s | 2.9 kB 00:00
Fedora Modular 31 - x86_64 23 kB/s | 25 kB 00:01
Fedora Modular 31 - x86_64 - Updates 19 kB/s | 16 kB 00:00
Fedora 31 - x86_64 - Updates 17 kB/s | 18 kB 00:01
Fedora 31 - x86_64 37 kB/s | 25 kB 00:00
google-chrome 18 kB/s | 1.3 kB 00:00
MariaDB 9.7 kB/s | 2.9 kB 00:00
packages-microsoft-com-prod 16 kB/s | 3.0 kB 00:00
PostgreSQL common RPMs for Fedora 31 - x86_64 11 kB/s | 3.0 kB 00:00
PostgreSQL 12 for Fedora 31 - x86_64 3.3 kB/s | 3.8 kB 00:01
RPM Fusion for Fedora 31 - Free - Updates 29 kB/s | 9.1 kB 00:00
RPM Fusion for Fedora 31 - Free 26 kB/s | 9.9 kB 00:00
RPM Fusion for Fedora 31 - Nonfree - Updates 11 kB/s | 9.4 kB 00:00
RPM Fusion for Fedora 31 - Nonfree 21 kB/s | 10 kB 00:00
skype (stable) 6.6 kB/s | 2.9 kB 00:00
teams 4.9 kB/s | 3.0 kB 00:00
Fedora 31 - x86_64 - VirtualBox 247 B/s | 181 B 00:00
Visual Studio Code 19 kB/s | 3.0 kB 00:00
Yarn Repository 25 kB/s | 2.9 kB 00:00
terminate called after throwing an instance of 'libdnf::ModulePackageContainer::EnableMultipleStreamsException'
what(): Cannot enable multiple streams for module 'ant'
Aborted (core dumped)
이 문제를 극복할 수 있는 방법이 있나요? 어떤 아이디어라도 환영합니다. 추가 패키지 저장소 중 일부를 비활성화/제거해야 하는지 여부는 문제가 되지 않습니다.
답변1
모듈식 저장소 비활성화에 대한 입문자 가이드
나는 이것이 정확히 무엇인지 확신하지 못했습니다.dbdemon의 코멘트의미했다:
"Fedora Modular" 저장소를 비활성화해야 했던 것 같습니다.
그래서 조금 검색해 보면 이 글이 나옵니다.Fedora/RHEL 8 모듈형 리포지토리 사용 방법.
다음을 통해 설치한 모듈식 저장소를 나열할 수 있습니다.
dnf module list --enabled
나는 다음과 같은 결과를 얻었습니다.
Docker CE Stable - x86_64 12 kB/s | 9.8 kB 00:00
...
Fedora Modular 30 - x86_64
Name Stream Profiles Summary
gimp 2.10 [d][e] default [d] GIMP
, devel
ripgrep latest [d][e] default [d] Line oriented search tool using Rust's regex
library
Fedora Modular 30 - x86_64 - Updates
Name Stream Profiles Summary
fd-find rolling [d][e] default [d] Simple, fast and user-friendly alternative to
find
gimp 2.10 [d][e] default [d] GIMP
, devel
ripgrep latest [d][e] default [d] Line oriented search tool using Rust's regex
library
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
참고: 끝에 있는 비트는 어떤 모듈을 설치했는지 알려줍니다. 하지만 나는 그러지 않았다고 확신한다.의도적으로이러한 모듈식 저장소를 설치하면 일부 개발자가 이를 활성화한 경우가 있습니다. 방금 실행하여 sudo dnf install ripgrep
모듈식 저장소를 설치했습니다.
따라서 이 목록에는 , fd-find
및 ripgrep
가 gimp
모듈로 설치되어 있습니다.
그런 다음 다음과 같은 경우 이를 비활성화할 수 있습니다 ripgrep
.
sudo dnf module disable ripgrep
나열한 모듈에 대해 동일한 작업을 수행하면 됩니다.
3개의 모듈을 비활성화하고 나면 문제 없이 Fedora 업그레이드를 실행할 수 있습니다.
sudo dnf system-upgrade download --releasever=31
답변2
에 따르면https://bugzilla.redhat.com/show_bug.cgi?id=1811234, 문제가 있는 모듈을 비활성화하면 작동하지만 업그레이드 후에 해당 모듈을 다시 활성화하는 것을 기억하는 것이 좋습니다. 언급된 더 간단한 솔루션은 다음과 같습니다.
sudo dnf module reset '*'
그러면 설치 중에 다음과 같은 메시지가 표시됩니다.
Enabling module streams:
gimp 2.10
maven 3.5
meson latest
ninja latest
ripgrep latest
나는 그것이 어떻게 작동하는지 완전히 이해하지 못하지만,https://docs.fedoraproject.org/en-US/modularity/using-modules-switching-streams/모듈은 최대 1개의 "스트림"을 선택할 수 있는 것으로 보이며 reset
해당 선택 항목을 지워 다른 스트림을 선택할 수 있도록 합니까?
답변3
'ant' 또는 'maven'과 같은 모듈에 문제가 있고 모듈을 제거해도 작동하지 않는 경우 다음 명령을 사용하여 모듈을 재설정해 보세요.
"dnf 모듈 재설정", 예: dnf 모듈 재설정 maven
그것은 "maven" 모듈과 함께 작동했습니다. 동일한 오류: 'libdnf::ModulePackageContainer::EnableMultipleStreamsException' 인스턴스를 던진 후 호출 종료 what(): 'maven' 모듈에 대해 여러 스트림을 활성화할 수 없습니다.
답변4
다음 단계를 수행해야 합니다.
1)@icc97이 말했듯 dnf module list --enabled
이 명령을 실행하고 다음과 같은 결과를 얻습니다.
Fedora Modular 30 - x86_64 - Updates
Name Stream Profiles Summary
ant 1.10 [d][e] default [d] Java build tool
fish 3 [d][e] default [d] Friendly interactive shell
gimp 2.10 [d][e] default [d], devel GIMP
maven 3.5 [d][e] default [d] Java project management and project comprehension tool
그런 다음 실행합니다
sudo dnf module reset gimp ant fish maven
(reset
부분 이후에는 위 결과에 나열된 항목만 입력합니다).명령을 실행
dnf system-upgrade download --releasever=31
하고 설치를 위해 패키지 목록이 표시될 때까지 기다린 후 'y(es)'를 선택한 다음... 정상적으로 설치를 진행합니다. :)
도움이 되길 바랍니다.