English
Total download size: 30 M
Is this ok [y/N]:
In this situation we enabled and installed the `nodejs:12` module stream on Fedora 35. Then we reset the `12` stream and enabled the `14` stream. After that we wanted to install the `nodejs:14` module stream.
First DNF is trying to upgrade or downgrade the existing installed software. It will not remove the existing software during the execution of the `reset` argument. The `reset` only disables the enabled stream of a module. The NEVRAs of the RPM files in the module stream can have different versions from the installed software (newer or older) and also from other streams from the same module. The runtime dependencies can be different between RPM packages from different module streams.
This conflict is correct and is not a bug. As you are trying to update installed RPM packages from the `12` stream with RPM packages from the `14` stream. Module streams from the same module are mutually exclusive and only one stream at a time should be enabled and installed.
If you are switching streams and not sure about the manual process, please use the `switch-to` argument as this is the recommended way.
Installing a RPM package from a wrong module stream.
of a RPM package requested to be installed from the wrong module stream
[root@bdaeaab947e6 /]# dnf module enable perl:5.30
Fedora 35 - x86_64 6.8 MB/s | 79 MB 00:11
Fedora 35 openh264 (From Cisco) - x86_64 3.1 kB/s | 2.5 kB 00:00
Fedora Modular 35 - x86_64 2.8 MB/s | 3.3 MB 00:01
Fedora 35 - x86_64 - Updates 7.3 MB/s | 27 MB 00:03
Fedora Modular 35 - x86_64 - Updates 2.3 MB/s | 2.8 MB 00:01
Dependencies resolved.
===========================================================================================================================================================================
Package Architecture Version Repository Size
===========================================================================================================================================================================
Enabling module streams:
perl 5.30
Transaction Summary
===========================================================================================================================================================================
Is this ok [y/N]: y
Complete!
[root@bdaeaab947e6 /]# dnf install perl-Tie-RefHash
Last metadata expiration check: 0:00:22 ago on Thu Mar 3 09:41:23 2022.
Error:
Problem: package perl-Tie-RefHash-1.40-478.fc35.noarch requires perl(:MODULE_COMPAT_5.34.0), but none of the providers can be installed
- conflicting requests
- package perl-libs-4:5.34.0-481.fc35.i686 is filtered out by modular filtering
- package perl-libs-4:5.34.0-481.fc35.x86_64 is filtered out by modular filtering
- package perl-libs-4:5.34.0-482.fc35.i686 is filtered out by modular filtering
- package perl-libs-4:5.34.0-482.fc35.x86_64 is filtered out by modular filtering
(try to add '--skip-broken' to skip uninstallable packages)
[root@bdaeaab947e6 /]#
The example describes a situation when you try to install a RPM package which is not provided from the enabled `perl:5.30` module stream. We first enable the `perl:5.30` module stream. After that we are trying to install the package `perl-Tie-RefHash`. The DNF package manager is trying to tell you that the `perl-Tie-RefHash` cannot be installed because it is not provided by any of the enabled module streams. Modular filtering will automatically filter out all the RPM packages which are not provided by the actual enabled module streams.
To fix this conflict you have to enable the correct module stream. In our case it is the `perl:5.32` module stream.
Installing a RPM package without enabling the module stream which provides it.
of a installation conflict when installing a package without enabling the correct module stream
[root@bdaeaab947e6 /]# dnf install perl-DBI
Last metadata expiration check: 3:13:30 ago on Thu Mar 3 09:41:23 2022.
Error:
Problem: package perl-DBI-1.643-10.fc35.x86_64 requires libperl.so.5.34()(64bit), but none of the providers can be installed
- conflicting requests
- package perl-libs-4:5.34.0-481.fc35.x86_64 is filtered out by modular filtering
- package perl-libs-4:5.34.0-482.fc35.x86_64 is filtered out by modular filtering
(try to add '--skip-broken' to skip uninstallable packages)
[root@bdaeaab947e6 /]# dnf module enable perl-DBI
Last metadata expiration check: 3:14:38 ago on Thu Mar 3 09:41:23 2022.
Dependencies resolved.
===========================================================================================================================================================================
Package Architecture Version Repository Size
===========================================================================================================================================================================
Enabling module streams:
perl-DBI 1.643
Is this ok [y/N]: y
Complete!
[root@bdaeaab947e6 /]# dnf install perl-DBI
Last metadata expiration check: 3:14:46 ago on Thu Mar 3 09:41:23 2022.
Dependencies resolved.
===========================================================================================================================================================================
Package Architecture Version Repository Size
===========================================================================================================================================================================
Installing:
perl-DBI x86_64 1.643-7.module_f35+12493+425c54a8 fedora-modular 700 k
Transaction Summary
===========================================================================================================================================================================
Install 1 Package
Total download size: 700 k
Installed size: 1.9 M
Is this ok [y/N]:
In this example we are trying to install the `perl-DBI` package. On our system we have previously enabled and installed the `perl:5.32` module stream. The conflict tells us that we are trying to install non-modular `perl-DBI` which depends on the non-modular `perl` but the non-modular `perl` package is not available due to modular filtering. The only RPM packages which are available for dependency resolution are the RPM packages from the `5.32` stream.
Non-modular RPM packages can not depend on modular content. If your non-modular package needs a modular dependency please modularize your content.