12

I'm trying to upgrade from Fedora 30 to 31 and I've successfully done these two steps:

dnf upgrade --refresh
dnf install dnf-plugin-system-upgrade

However, when I do the next:

dnf system-upgrade download --releasever=31

... I get this:

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)

Is there some way to overcome this problem? Any and all ideas are welcome. I don't mind if I have to disable/remove some of my extra package repos, if that is what it takes ...

  • I even removed maven and ant from my system and it's still whining about it can't upgrade maven because of multiple streams. – FilBot3 May 28 '20 at 21:40
5

It's really weird but I have stumbled on this issue too and found out that you have to disable these repos:

  • fedora-modular.repo
  • fedora-updates-modular.repo
  • fedora-updates-testing-modular.repo

Thanks @vonbrand and @dbdemon for the idea.

  • 1
    I disabled those, and a few other repos, which allowed the upgrade to progress. Half-way through I got a nasty error and was dropped out to the terminal with what looked like a broken upgrade. Fortunately, a reboot allowed the upgrade to continue and complete successfully. – dbdemon Apr 15 '20 at 16:46
  • When I attempt to disable the repo I get the following sudo dnf --disable fedora-modular --enable, --set-enabled and --disable, --set-disabled must be used with config-manager command. – FilBot3 May 28 '20 at 21:36
  • @FilBot3 Try sudo dnf config-manager --disable fedora-modular – EpicVoyage Sep 1 '20 at 19:03
  • I found that I also needed to only upgrade one version at a time in addition to disabling the modular repos. – Mark C yesterday
15

Dummies guide to disabling modular repos

I wasn't sure exactly what this comment from dbdemon meant:

It seems I had to disable the "Fedora Modular" repos.

So a bit of searching brings up this article on How to use Fedora / RHEL 8 Modular Repository.

You can list the modular repos that you have installed by:

dnf module list --enabled

I got this output:

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

Note: The bits at the end tell you which modules you have installed. However I'm pretty sure that I didn't intentionally install these modular repos, it just happens that some developers have enabled them. I just ran sudo dnf install ripgrep and it installed the modular repo.

So from this list I have, fd-find, ripgrep and gimp installed as modules.

I can then disable these for example for ripgrep:

sudo dnf module disable ripgrep

You just need to do the same for which ever modules you have listed.

Once I had disabled my 3 modules I could run the Fedora upgrade without problem:

sudo dnf system-upgrade download --releasever=31
  • Your instruction worked for me. – FilBot3 May 28 '20 at 21:46
  • Worked like a charm. Thanks a lot! – Daniel Schütte Aug 10 '20 at 23:00
10

According to https://bugzilla.redhat.com/show_bug.cgi?id=1811234, disabling the problematic modules works, but you'll want to remember to re-enable them after the upgrade. A possibly simpler solution mentioned there is:

sudo dnf module reset '*'

Then during installation it'll say something like:

Enabling module streams:
 gimp                                          2.10                                                     
 maven                                         3.5                                                      
 meson                                         latest                                                   
 ninja                                         latest                                                   
 ripgrep                                       latest                                                   

I don't fully understand how it works, but from https://docs.fedoraproject.org/en-US/modularity/using-modules-switching-streams/ it seems that a module can have at most 1 "stream" selected, and reset clears that selection allowing another stream to be chosen?

  • note the fix for bug 1811234 was released today. – danblack May 26 '20 at 2:51
6

If you have a problem with any module like 'ant' or 'maven', and removing module doesn't work, try to reset the module with command:

"dnf module reset ", exmaple: dnf module reset maven

It worked for me with "maven" module, same error: terminate called after throwing an instance of 'libdnf::ModulePackageContainer::EnableMultipleStreamsException' what(): Cannot enable multiple streams for module 'maven'

  • Worked for me with the gimp module too. – ulatekh May 1 '20 at 19:16
1

Try only with the standard repositories, then add the others one by one. I'd start with the larger/more common ones first (RPM Fusion), the more niche ones are more probable to cause grief. Besides, why e.g. Postgres repository? What's wrong with the distribution's version? Check you really need all that non-distribution stuff.

  • 1
    That seems to have helped - the upgrade is now progressing. It seems I had to disable the "Fedora Modular" repos. And yes, I absolutely need all those repos because I need the latest and greatest of things that interest me, especially database systems :) – dbdemon Apr 10 '20 at 17:42
1

You need to perform following steps:

1) As @icc97 said execute dnf module list --enabled command and get something like:

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. Then run sudo dnf module reset gimp ant fish maven (after reset part you are inputting only ones listed in results above).

  2. Run dnf system-upgrade download --releasever=31 command and wait for listing of packages to be displayed for installation and choose 'y(es)' and then...proceed normally with installation. :)

Hope it helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.