Ich versuche, von Fedora 30 auf 31 zu aktualisieren und habe diese beiden Schritte erfolgreich durchgeführt:
dnf upgrade --refresh
dnf install dnf-plugin-system-upgrade
Wenn ich jedoch das nächste mache:
dnf system-upgrade download --releasever=31
... bekomme ich Folgendes:
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)
Gibt es eine Möglichkeit, dieses Problem zu lösen? Alle Ideen sind willkommen. Es macht mir nichts aus, wenn ich einige meiner zusätzlichen Paket-Repos deaktivieren/entfernen muss, wenn es sein muss ...
Antwort1
Leitfaden für Dummies zum Deaktivieren modularer Repos
Ich war mir nicht sicher, was das genau war.Kommentar von dbdemongemeint:
Anscheinend musste ich die „Fedora Modular“-Repos deaktivieren.
Nach ein wenig Suchen findet man diesen Artikel überSo verwenden Sie das Fedora / RHEL 8 Modular Repository.
Sie können die von Ihnen installierten modularen Repos auflisten, indem Sie:
dnf module list --enabled
Ich habe diese Ausgabe erhalten:
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
Hinweis: Die Bits am Ende sagen Ihnen, welche Module Sie installiert haben. Ich bin mir jedoch ziemlich sicher, dass ich nichtabsichtlichInstallieren Sie diese modularen Repos. Es kommt einfach vor, dass einige Entwickler sie aktiviert haben. Ich habe es gerade ausgeführt sudo dnf install ripgrep
und es hat das modulare Repo installiert.
Aus dieser Liste habe ich also fd-find
und ripgrep
als gimp
Module installiert.
Diese kann ich dann zum Beispiel deaktivieren für ripgrep
:
sudo dnf module disable ripgrep
Sie müssen dasselbe einfach für alle Module tun, die Sie aufgelistet haben.
Nachdem ich meine 3 Module deaktiviert hatte, konnte ich das Fedora-Upgrade problemlos ausführen:
sudo dnf system-upgrade download --releasever=31
Antwort2
Entsprechendhttps://bugzilla.redhat.com/show_bug.cgi?id=1811234, das Deaktivieren der problematischen Module funktioniert, aber Sie sollten daran denken, sie nach dem Upgrade wieder zu aktivieren. Eine dort erwähnte, möglicherweise einfachere Lösung ist:
sudo dnf module reset '*'
Während der Installation wird dann etwa Folgendes angezeigt:
Enabling module streams:
gimp 2.10
maven 3.5
meson latest
ninja latest
ripgrep latest
Ich verstehe nicht ganz, wie es funktioniert, aber vonhttps://docs.fedoraproject.org/en-US/modularity/using-modules-switching-streams/es scheint, dass für ein Modul höchstens ein „Stream“ ausgewählt werden kann und reset
diese Auswahl gelöscht wird, sodass ein anderer Stream ausgewählt werden kann?
Antwort3
Wenn Sie ein Problem mit einem Modul wie „Ant“ oder „Maven“ haben und das Entfernen des Moduls nicht funktioniert, versuchen Sie, das Modul mit dem folgenden Befehl zurückzusetzen:
„dnf module reset“, Beispiel: dnf module reset maven
Bei mir hat es mit dem Modul „Maven“ funktioniert, gleicher Fehler: „Beenden“ wird aufgerufen, nachdem eine Instanz von „libdnf::ModulePackageContainer::EnableMultipleStreamsException“ ausgelöst wurde. Was (): Mehrere Streams für Modul „Maven“ können nicht aktiviert werden.
Antwort4
Sie müssen folgende Schritte ausführen:
1)Wie @icc97 sagte, führen Sie dnf module list --enabled
den Befehl aus und erhalten Sie etwa:
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
Führen Sie es dann aus
sudo dnf module reset gimp ant fish maven
(nachreset
dem Teil geben Sie nur die in den oben aufgeführten Ergebnissen aufgeführten ein).Führen Sie
dnf system-upgrade download --releasever=31
den Befehl aus, warten Sie, bis die Liste der zu installierenden Pakete angezeigt wird, wählen Sie „y(s)“ und fahren Sie dann … wie gewohnt mit der Installation fort. :)
Ich hoffe es hilft.