Fedora 30에서 31로 업그레이드: 모듈 "ant"에 대해 다중 스트림을 활성화할 수 없습니다

Fedora 30에서 31로 업그레이드: 모듈 "ant"에 대해 다중 스트림을 활성화할 수 없습니다

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'()의 인스턴스를 던진 후 종료: '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 
  1. 그런 다음 실행합니다 sudo dnf module reset gimp ant fish maven( reset이 부분 이후에는 위 결과에 나열된 내용만 입력합니다).

  2. 명령을 실행 dnf system-upgrade download --releasever=31하고 설치할 패키지 목록이 표시될 때까지 기다린 다음 "y(es)"를 선택하고... 정상적으로 설치합니다. :)

도움이 되었기를 바랍니다.

관련 정보