2020-08-10
Disabling DNF modules on Fedora 31 so they don't mess up package updates
Fedora 31 DNF modules (and probably Fedora 32 ones as well) are currently broken, as covered here and here. Fedora is not insuring that DNF modules that claim to be the 'latest' (for example ripgrep) have versions of their packages that are as recent as the non-modular packages (the ripgrep module has 11.0.2; Fedora 31 has 12.0.1), and the mere existence of a DNF module for something will block updates, even if you have not enabled the module. The only way out is to disable (or ignore) DNF modules.
If you want to temporarily ignore DNF modules to update your system to the latest versions of packages available in the main Fedora 31 repository, the following (from my first entry) appears to work:
dnf --setopt=updates.module_hotfixes=true --setopt=fedora.module_hotfixes=true update
In my second entry I thought that
removing everything from /etc/dnf/modules.d
would prevent problems.
This turns out to not be the case. If you want to completely disable
DNF modules, you need to either edit /etc/yum.repos.d/fedora-modular.repo
to change 'enabled=1' to 'enabled=0', or remove the file entirely.
I would edit the file, as that probably has a higher chance to
survive package updates of the fedora-repos package. I believe
that you can also do this with 'dnf config-manager --set-disabled
fedora-modular
', but I'm the kind of person who uses an editor
here.
(Fedora has repo files in /etc/yum.repos.d
for reasons of historical
compatibility and avoiding flag days where all repo files have to
move, one way or another. It amuses me sometimes.)
I don't yet know if upgrading Fedora with DNF keeps modules disabled. I suspect not and that I'll have to go back in to clean things out after I upgrade to Fedora 32 one of these days. After my experiences with modules to date, I have no intentions of ever having them doing anything on any of my Fedora machines until and unless Fedora gives me no choice in the matter.
I hope that this is the last entry I have to write about DNF modules. There's more that I could say about this mess but I'd rather not spend more time on it.