Schwerer Bug in reinstall Funktion von dnf entdeckt

In dnf Version 1.1.9, genauer gesagt in der reinstall Funktion, ist ein schwerer Fehler entdeckt worden, der zur Folge hat, das Pakete, die mittels reinstall neu installiert wurden, später von der autocleanup Funktion von dnf nicht als überflüssig erkannt werden können. Da es momentan für den Fehler auch keinen Workaround gibt, kann man momentan nur dringend davon abraten, die reinstall Funktion von dnf zu verwenden.

Angesichts eines so gravierenden Fehlers in einer wichtigen Kernkomponente von Fedora fragt man sich dann doch schon, ob dnf tatsächlich schon für den produktiven Einsatz bereit ist und ob sich die Entwickler darüber im klaren sind, was für eine verantwortungsvolle Aufgabe sie haben und was für gravierende Folgen es haben kann, wenn sie fehlerhafte Versionen von dnf veröffentlichen.

Nerviger dnf-PackageKit-Bug endlich gefixt

Bitte beachtet auch die Anmerkungen zu den HowTos!

Seit einiger Zeit gab es einen extrem nervigen Bug im Zusammenspiel zwischen dnf und PackageKit, der dafür sorgte, das dnf autoremove Pakete, die über PackageKit installiert wurden als nicht mehr benötigt ansah und deinstallieren wollte.

Wenn man da nicht aufgepasst hat, konnte man sein System auf diesem Weg sehr schnell und elegant über den sprichwörtlichen Jordan befördern.

Glücklicherweise wurde der Bug endlich in der beiden Programmen zugrunde liegenden libhif Version 0.2.2-3 gefixt, die auch bereits als Update verteilt wird. Wer sicher gehen möchte, das er die von dem Fehler bereinigte Version der libhif nutzt, kann dies einfach im Terminal über

rpm -q libhif

herausfinden.

Um das Problem jedoch auch für bereits installierte Pakete zu beheben, muss zusätzlich noch im Terminal folgendes Kommando ausgeführt werden:

rpm -qa --qf '%{NAME}\n' | xargs sudo dnf mark install

Durch diesen Befehl werden alle installierten Pakete als vom Benutzer installiert markiert, was unter Umständen dazu führen kann, das einige Pakete, die eigentlich nicht mehr benötigt werden, trotzdem installiert bleiben. Alles in allem dürfte dieser „Overhead“ jedoch sehr gering und somit zu wohl für die Allermeisten von uns zu verschmerzen sein.

DNF nach C

Wie Jan Šilhan heute im Blog des DNF-Projektes berichtet, hat das Vorhaben, DNF von Python nach C zu migrieren, indem Teile des Codes in die libhif Bibliothek integriert werden, einen weiteren Meilenstein erreicht, indem die Hawkey Bibliothek in die libhif integriert wurde.

Hauptgrund für die Integration von hawkey in libhif war, das die API von hawkey bislang nicht final war und immer an die Bedürfnisse von dnf, PackageKit oder rpm-ostree angepasst wurde. Dies führte unter anderem zu Problemen, wenn dnf und PackageKit parallel genutzt wurde.

Darüber hinaus soll libhif in Zukunft grundlegende Paketmanager-Funktionen, welche bislang von dnf, PackageKit und rpm-ostree seperat implementiert wurden, bereitstellen und ferner dafür sorgen, das sich alle Paketmanager, die libhif nutzen, die selben Metadaten teilen.

Pimp my dnf: Automatisches Erneuern des Caches deaktivieren

Bitte beachtet auch die Anmerkungen zu den HowTos!

Standardmäßig aktualisiert dnf seinen Metadaten-Cache alle 3 Stunden, was jedoch manchmal dazu führt, das z.B. PackageKit neue Updates meldet, die jedoch von dnf anscheinend (noch) nicht gefunden werden, da der Metadaten-Cache kurz vor dem Eintreffen der Updates auf den Mirrors neu erstellt wurde. In so einem Fall hilft dann nur entweder 3 Stunden zu warten oder den Cache manuell mittels

su -c'dnf clean expire-cache; dnf makecache'

neu zu erstellen.

Wer lieber die automatische Erneuerung des Caches komplett deaktivieren möchte, muss dazu nur die dnf.conf mittels

su -c'nano /etc/dnf/dnf.conf'

öffnen und dort den Eintrag

metadata_timer_sync=0

einfügen.

Dies hat jedoch zur Folge, das ein

su -c'dnf update'

unter Umständen deutlich länger als vorher dauert, da dnf zuerst den veralteten Metadaten-Cache neu erstellt, bevor es nach verfügbaren Updates sucht.

Diskussion um dnf reißt nicht ab

Die auf der Entwickler-Liste von Fedora immer wieder aufkommenden Diskussionen um dnf und den Umstand, das dieses inzwischen auf offiziell yum ersetzt hat, kamen jüngst wieder auf, als sich Harald Reindl darüber beklagte, das es nach wie vor kein Pendant zu package-cleanup, welches Teil der (noch) nicht angepassten yum-utils ist, gibt.

Reindl argumentierte damit, das es nach jedem Upgrade von Fedora veraltete und (aufgrund geänderter Abhängigkeiten) verwaiste Pakete gebe, welche man bislang mittels

package-cleanup --leaves

schnell ausfindig machen und entfernen konnte.

Im Laufe der Diskussion wurde zwar auf das leaves Plugin für dnf sowie das autoremove von dnf hingewiesen, diese sind jedoch laut Reindl kein adäquater Ersatz für package-cleanup, da sie anders arbeiten würden, als package-cleanup.

Reindl machte im Verlauf der Diskussion ebenfalls deutlich, das er es nach wie vor für falsch hält, yum durch dnf zu ersetzen, solange dnf nicht die selben Funktionen wie yum biete und sich teilweise anders verhalte als yum.

Ist der Umstieg von yum auf dnf verfrüht?

  • nein (79%, 30 Stimen)
  • ja (16%, 6 Stimen)
  • keine Meinung (5%, 2 Stimen)

Stimmen gesamt: 38

Loading ... Loading ...

dnf soll fedup und upgrade.img beerben

Auf der Fedora-Entwicklerliste wurde gestern ein Änderungsvorschlag für Fedora 23 vorgestellt, der dafür sorgen soll, das zukünftig nicht mehr fedup und upgrade.img, sondern einzig Fedoras neuer Paketmanager dnf Systemupgrades durchführen soll.

Bislang werden für Systemupgrades die separaten Tool fedup bzw. upgrade.img verwendet, welche jedoch unabhängig vom jeweiligen Paketmanager des Systems arbeiten. Hinzu kommt, das zumindest letzteres auch teilweise auf undokumentierte und deshalb nicht unterstützte Funktionen von systemd zugegriffen hat, was beim Versuch, fedup durch dnf zu ersetzen immer wieder zu Problemen geführt hat.

dnf soll hingegen auf den, von dem systemd-Entwicklern empfohlenen, Offline-Update-Modus von systemd zurückgreifen und die Verwendung von upgrade.img überflüssig machen.

Fedora 22: dnf ersetzt yum als Standard-Paketmanager

Mit dem Update auf Version 3.4.3-505 wird der langjährige Standard-Paketmanager yum offiziell als „deprecated“ (veraltet) markiert und durch dnf als Standard-Paketmanager ersetzt. Weiterhin wird bei jedem Aufruf von yum ab dem Updater der folgende Hinweis angezeigt und der Aufruf anschließend als dnf weitergereicht:

Yum command has been deprecated, use dnf instead.
See ‚man dnf‘ and ‚man yum2dnf‘ for more information.
To transfer transaction metadata from yum to DNF, run ‚dnf migrate‘
Redirecting to ‚/usr/bin/dnf ‚

Wer weiterhin yum nutzen möchte, muss anstatt yum nun yum-deprecated aufrufen. Um den Hinweis, das yum veraltet ist, kommt man dennoch nicht herum.