AA_123rf-28608089_lightwise-123rf.jpg

© lightwise, 123RF

Fedora-Paketverwalter: Umstieg von Yum auf DNF

Neustart

Mit Fedora 22 setzt Red Hats Community-Ableger zum ersten Mal auf den Paketverwalter DNF als Standard. Wir zeigen, was Sie beim Umstieg beachten müssen.

RPM gehört zu den Urgesteinen der Paketmanagement-Gattung. Damit lassen sich Pakete bauen, installieren, aktualisieren oder auch wieder sauber aus dem System löschen – doch damit enden die Fähigkeiten. Geht es um das automatische Auflösen von Abhängigkeiten, das Verwalten externer Paketquellen oder ausgeklügelte Suchfunktionen, muss RPM passen. Zwar bietet bereits die Version 5 von RPM die Möglichkeit [1], ansatzweise ohne Zusatzwerkzeuge auszukommen, doch sie entstand aufgrund eines Entwicklerstreits. Weder Red Hat noch Fedora unterstützen sie, die Funktionen kommen nur in Fedora-inkompatiblen Distributionen wie OpenMandriva oder PLD zum Einsatz.

Lange Zeit übernahm das von Yellow Dog Linux übernommene Yum die anspruchsvolleren Aufgaben; Fedora 22 macht damit nun aber Schluss und klärt die Fronten: Das schon in Fedora 18 erstmals erschienene DNF [2] löst das bisher als Standardwerkzeug zum Einsatz kommende Yum ab. Die vor vier Jahren veröffentlichte Version 3.4.3 von Yum steht jedoch weiterhin in den Fedora-Paketquellen. Die Fedora-Entwickler pflegen zudem noch etwa acht Jahre anfallende Bugfixes ein, bis zum virtuellen Ableben von Red Hat Enterprise Linux 7 und dessen Derivaten. Eine echte Weiterentwicklung aber findet nicht mehr statt.

Der Hauptgrund für den Wechsel waren nicht nörgelnde Benutzer, sondern die Yum-Entwickler, die ihrem Produkt keine große Zukunft mehr bescheinigen. Spätestens seit feststand, dass Fedora schon lange vor dem vorbestimmten Tod von Python 2 in fünf Jahren auf die Version 3 der Skriptsprache als Standard setzen würde, war das Ende von Yum abzusehen: Niemand wollte die Portierung in die Hand nehmen.

Letztendlich war dies jedoch nur der Auslöser, aber nicht die einzige Ursache. Für den Nachfolger war das Auslagern der Abhängigkeitsauflösung in eine eigene Bibliothek angedacht, die auch von Mitbewerbern wie Pacman oder Apt genutzt werden kann oder zumindest könnte. Mit dem libsatsolver findet sich auch eine entsprechende Umsetzung. Die Yum-API war ebenso fehlerbehaftet wie dokumentationsarm und schwer zu pflegen.

Mit all diesen sperrigen Unzulänglichkeiten soll DNF nun aufräumen: Es steht von Anfang an bilingual für Python 2 und 3 zur Verfügung. Obendrein bringt es eine strikte, gut dokumentierte API mit, die mit der heißen Nadel gestrickte Hacks von vornherein unnötig macht.

Für Benutzer

Geht es nur um gewöhnliche Aktionen wie das Installieren, Aktualisieren oder Löschen von Paketen, müssen sich gewöhnliche Fedoraner wenig kümmern. Wie steht es jedoch mit der Umgewöhnung für all jene, die Yum nicht erst seit gestern kennen und regelmäßig nutzen?

Zunächst gilt es zu loben, dass DNF neben der grundlegenden RPM-Datenbank auf die Yum-Daten zugreift und keine weitere inkompatible Datenbank erfordert. Diese hätte die Migration und Distributionsaktualisierung bestehender Systeme wesentlich erschwert, wenn nicht gar unmöglich gemacht. Im kommerziellen Umfeld wäre dies ein Ding der Unmöglichkeit.

Als alter Bekannter blieb der Warnhinweis, der bei zwischenzeitlichen Änderungen an der RPM-Datenbank direkt mit dem rpm-Befehl beim nächsten Aufruf von DNF erscheint. Dieses Vorgehen mag DNF genauso wenig wie Yum, aber nur in wenigen Fällen bringt ein solcher Fehltritt das System wirklich aus dem Gleichgewicht. Somit bleibt auf lange Sicht gewährleistet, dass sich theoretisch beide Befehle unabhängig voneinander zur Systempflege eignen. Dies macht besonders dann Sinn, wenn man Yum-Plugins braucht, für die es noch kein entsprechendes DNF-Pendant gibt.

Eine radikale Umgewöhnung steht für viele Aufgaben gar nicht an. Wie Yum bietet auch DNF zahlreiche Unterbefehle für klar umrissene Aufgabengebiete, die ohne das GNU-typische Doppelminus auskommen. Ein dnf install Paket sucht nach dem gewünschten Paket und installiert es. Die Aktualisierung eines vorhandenen Pakets besorgt dnf update Paket. Lassen Sie den Paketnamen weg, bringt DNF das ganze System auf den neuesten Stand.

Als neue Funktion entfernt DNF mit dnf remove Paket (aus Gründen der Abwärtskompatibilität funktioniert auch dnf erase) nicht nur die ausgewählten Pakete, sondern im selben Zug auch die danach nicht mehr benötigten Abhängigkeiten – das entspricht in etwa dem Zurückrollen einer Transaktion in Yum. Sollen die abhängigen Pakete erhalten bleiben, müssen Sie zu Rpm greifen. Der Flächenbrand bei der Deinstallation eines Pakets lässt sich nur durch Deaktivieren von clean_requirements_on_remove in der DNF-Konfiguration verhindern. Andererseits hilft das Programm so, Platz und Bandbreite für zukünftige Aktualisierungen zu sparen, indem Paketleichen gar nicht erst entstehen.

Ein Beispiel zeigt die Terminalausgabe von dnf update in Abbildung 1. Hier lassen sich keine gravierenden Änderungen gegenüber Yum wahrnehmen. Die Kernel-Pakete verdienen jedoch besonderes Augenmerk: War der Betriebssystemkern früher beinahe unantastbar, so führt DNF nun ohne Murren ein dnf remove kernel aus und entfernt sämtliche Pakete mit diesem Namensteil. Ohne Kernel kein Linux – somit legen Sie Ihr System dauerhaft lahm. Zwar lässt sich so eine Aktion reparieren; fraglich bleibt jedoch, warum die Entwickler keinen Grund mehr sehen, solch gefährliche Aktionen zu verhindern, wie das noch in Yum der Fall war. Um ein Kernel-Paket zu löschen, war dort noch die explizite Versionsangabe erforderlich.

Abbildung 1: Wie gehabt: die DNF-Ausgabe beim Einspielen von Aktualisierungen unter Fedora 22.

In der Tabelle "Alt gegen neu" finden Sie einen direkten Vergleich einiger früherer Yum-Befehle mit den entsprechenden DNF-Pendants. Die Tabelle erhebt keinen Anspruch auf Vollständigkeit, wobei es zu bedenken gilt, dass sich manche fehlenden Funktionen auch per Skript nachbilden lassen. Gelegentlich hilft auch ein Blick in die DNF-Konfiguration.

Alt gegen neu

Yum-Werkzeug DNF-Befehl/Option enthalten im Paket
yum check dnf repoquery --unsatisfied dnf-plugins-core
yum-langpacks dnf-langpacks
yum-plugin-copr dnf copr dnf-plugins-core
yum-plugin-fastestmirror fastestmirror-Option in dnf.conf dnf
yum-plugin-fs-snapshot dnf-plugins-extras-snapper
yum-plugin-local dnf-plugins-extras-local
yum-plugin-merge-conf dnf-plugins-extras-rpmconf
yum-plugin-priorities priority-Option in dnf.conf dnf
yum-plugin-remove-with-leaves dnf autoremove dnf

Möchten Sie unter Fedora ein heruntergeladenes oder manuell aus dem Quellcode erstelltes Paket installieren, mussten Sie Yum das Kommando localinstall und gegebenenfalls noch --nogpgcheck mit auf den Weg geben. DNF genügt hingegen die Angabe eines Dateinamens, alternativ auch einer URL, sodass separates Herunterladen entfällt. Ein typischer Anwendungsfall dafür wäre zum Beispiel das Aktivieren der RPM-Fusion-Quelle, in der aus Fedora-Sicht in einer rechtlichen oder lizenztechnischen Grauzone angesiedelten Pakete lagern, ohne die aber insbesondere multimedial interessierte Benutzer kaum auskommen.

Plugins

Yum war stets für zahlreiche Plugins bekannt, die den Paketmanager um weitere Funktionen ergänzen. Obwohl sich DNF auch durch einen Yum-Alias aufrufen lässt, sind diese Plugins zu DNF nicht kompatibel. Halb so schlimm: Ein Großteil der Plugin-Funktionen hat die Portierung bereits hinter sich. Frühere externe Funktionen fanden teils direkt in DNF ihren Platz, teils lagerten die Entwickler diese in die zusätzlichen Pakete dnf-plugins-core und dnf-plugins-extras aus.

Das Paket dnf-plugins-core enthält, wie der Name schon andeutet, grundlegende Plugins. Dazu gehören debuginfo-install zum Einspielen der Programmquellen zur Fehlersuche bei Abstürzen oder copr zum Einbinden inoffizieller Quellen, denen aber innerhalb der Fedora-Gemeinschaft die Paketbau-Server und weitere Teile der Infrastruktur zur Verfügung stehen. Copr ähnelt den aus der Ubuntu-Welt bekannten PPAs. Ein ausgeglichenes Maß aus Vorsicht und Courage vorausgesetzt, können Sie damit den ohnehin aktuellen Fedora-Paketpool noch aktueller halten. Auf diese Weise kommt Fedora einer echten Rolling-Release-Distribution ein ganzes Stück näher.

Darüber hinaus schafften auch ausgefallene Yum-Erweiterungen den Sprung in die DNF-Kompatibilität: So erstellt zum Beispiel repograph aus den installierten Paketen einen grafischen Abhängigkeitsbaum gigantischen Ausmaßes im Dot-Format. Bei Problemen mit Abhängigkeiten sucht repoclosure nach unaufgelösten Abhängigkeiten in lokalen oder entfernten Paketquellen. Noch immer harren etliche andere Erweiterungen der Portierung, was ein interessantes Betätigungsfeld für Python-affine Programmierer wäre, die zur Verbesserung und Vervollständigung von DNF beitragen wollen.

Die Tabelle "Portierte Plugins" listet die von Yum übernommenen Plugins auf und zeigt sowohl den entsprechenden Befehl an als auch das Paket, aus dem es stammt. In den meisten Fällen stammen die Erweiterungen aus den beiden genannten und von den DNF-Entwicklern betreuten Plugin-Paketen, die zur Standardinstallation zählen.

Portierte Plugins

Yum-Werkzeug DNF-Befehl Paket
debuginfo-install dnf debuginfo-install dnf-plugins-core
find-repos-of-install dnf list installed dnf
needs-restarting dnf tracer dnf-plugins-extras-tracer
package-cleanup dnf list, dnf repoquer dnf-plugins-core
repoclosure dnf repoclosure dnf-plugins-extras-repoclosure
repo-graph dnf repograph dnf-plugins-extras-repograph
repomanage dnf repomanage dnf-plugins-extras-repomanage
repoquery dnf repoquery dnf-plugins-core
reposync dnf reposync dnf-plugins-core
repotrack dnf download dnf-plugins-core
yum-builddep dnf builddep dnf-plugins-core
yum-config-manager dnf config-manager dnf-plugins-core
yum-debug-dump dnf debug-dump dnf-plugins-extras-debug
yum-debug-restore dnf debug-restore dnf-plugins-extras-debug
yumdownloader dnf download dnf-plugins-core

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Fedora Core 6 im Test
    Vor kurzem erblickte Fedora Core 6 (Codename: "Zod") das Licht der Welt. LinuxUser hat die aktuelle Version der von Red Hat geförderten Community-Distribution unter die Lupe genommen.
  • Photoshop-Plugins in Gimp
    Linux-Programmierer machen oft das Unmögliche möglich. Ein fleißiger Finne hat Photoshop-Plugin-Schnittstele analysiert und Code geschrieben, der solche Windows-Plugins auch in Gimp lädt.
  • Großer Wurf
    Fedora 22 erscheint zwar mit einer Woche Verspätung, glänzt dafür aber mit Gnome 3.16 und dem neuen Paketmanager DNF. Lediglich der Installer Anaconda könnte Neueinsteigern Kopfschmerzen bereiten.
  • Panel aus LXDE bietet kleinere Verbesserungen
    Das Panel der schlanken Desktop-Umgebung LXDE klettert auf die Version 0.7.0. Die Neuerungen beschränken sich vor allem auf Änderungen unter der Haube sowie überarbeitete Plugins.
  • Repository bringt Extras für Red Hat Enterprise Linux

    Das Fedora-Projekt Extra Packages for Enterprise Linux (EPEL) hat ein Repository für die neue RHEL-Version 6 bereit gestellt.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

EasyBCD/NeoGrub
Wolfgang Conrad, 17.12.2017 11:40, 0 Antworten
Hallo zusammen, benutze unter Windows 7 den EasyBCD bzw. NEOgrub, um LinuxMint aus einer ISO Dat...
Huawei
Pit Hampelmann, 13.12.2017 11:35, 2 Antworten
Welches Smartphone ist für euch momentan das beste? Sehe ja die Huawei gerade ganz weit vorne. Bi...
Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 2 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 3 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...