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.

libsolv und hawkey legen dnf lahm

Wer dnf als Paketmanager verwendet, wird wahrscheinlich momentan mit der Fehlermeldung

AttributeError: No such checksum.

konfrontiert, sobald man versucht, sein System auf dem aktuellen Stand zu halten.

Ursache dafür ist wohl eine Inkompatibilität zwischen libsolv 0.6 und hawkey 0.4.12.

Um das Problem zu beheben, hilft nur, kurzzeitig auf yum zurück zu greifen und hawkey mit Hilfe von yum zu aktualisieren:

su -c'yum update hawkey'

Anschließend sollte dnf wieder wie gewohnt funktionieren und die verbleibenden Updates ohne Probleme installieren.

PackageKit mit hawkey als Backend nutzen

Bitte beachtet auch die Anmerkungen zu den HowTos!

In Fedora 21 wird PackageKit anstatt yum das auch von dnf verwendete hawkey als Backend nutzen und somit den für Fedora 22 geplanten Umstieg von yum zu dnf quasi einleiten.

Wer bereits heute schon das wesentlich schnellere hawkey als Backend verwenden möchte, kann das über folgende Schritte bewerkstelligen:

su -c'yum swap PackageKit-yum PackageKit-hawkey'
su -c'systemctl restart packagekit'

Anschließend kann man zur Sicherheit mittels

pkcon backend-details

kontrollieren, ob alles geklappt hat und PackageKit hawkey als Backend verwendet.

Da sich sowohl dnf als auch hawkey noch in der Entwicklung befinden, bitten die Entwickler um das Melden von gefundenen Problemen.