QApt/Muon: APT-GUI für KDE

Obwohl ich ja als PackageKit-Fan bekannt bin hielt ich damals, beim Umstieg von KDE3 auf KDE4 in Kubuntu die Ersetzung von Adept durch KPackageKit für nicht wirklich gut. Zu neu war die Technik von PackageKit und zu unübersichtlich die Oberfläche von KPackageKit.

Inzwischen hat sich das Problem erledigt, KPackageKit ist ein sehr gutes Stück Software, welches Spaß macht, es zu benutzen. Trotzdem bleiben einige Probleme. So gibt es bei PackageKit (welches von Richard Hughes, einem Fedora und GNOME-Entwickler gestartet wurde) die Regel, dass eine einmal gestartete Transaktion (=irgendeine Interaktion mit dem Paketmanager) niemals den Nutzer während der Installation etwas fragen darf. Jede Nutzerinteraktion muss vor Beginn der Transaktion erfolgen. Das funktioniert mit Yum, dem Fedora-Paketmanager. Blöderweise hat Debian mit Debconf ein sehr mächtiges Werkzeug für Paketmaintainer, mit welchem Pakete währen der Installation grafisch mit dem Nutzer interagieren können. Das ist in vielen Fällen nützlich, steht aber entgegen der PackageKit-Philosophie. Und genau dies ist der Grund, warum PackageKit nicht in den Debian-Quellen und kein Standard in Ubuntu ist.

Nun aber gibt es Abhilfe für alle Probleme mit APT-GUIs in KDE sowie für das Debconf-Problem.

Dantti schreibt eine Unterstützung für Debconf in PackageKit. (genau genommen wird auch Debconf überarbeitet) Damit wird KPackageKit vielleicht schon in der nächsten Version Debconf unterstützen, GNOME-PackageKit wird folgen. Dieses Problem ist also gelöst. (Gerne hätte ich beim Entwickeln der Frontends geholfen, aber meine Qt4-Kenntnisse sind noch etwas zu gering dafür)

Das andere Problem war, dass es keinen KDE-Paketmanager in Debian/Ubuntu gab, der sich mit Synaptic messen konnte. Jede auf PackageKit aufbauende GUI kann immer nur die Features unterstützen, die von allen Paketmanagern (Yum, Zypper, Emerge, APT, etc.) unterstützt werden. Daher kann KPackageKit die APT-spezifischen Features nur in begrenztem Maße ausnutzen.

Auch das Problem wird angegangen. Schuld daran ist in diesem Fall hauptsächlich Jonathan Thomas, Kubuntu und KDE-Entwickler. Er hat QApt geschrieben, ein generisches API für APT, welches jede KDE-Anwendung nutzen kann. (Zuvor gab es mehrere, halbfertige Implementationen. Z.B. haben wir festgestellt, dass der Debconf-Support in Adept 2 nie wirklich vollständig war…)

QApt selbst ist in zwei Teile geteilt. Es besteht zum Einen aus LibQApt, einem Qt-Wrapper um libapt-pkg mit einem schöneren API als es libapt-pkg hat und APTCache-Support. Damit kann man sämtliche nur-lesen-Aktionen mit APT ausführen. Zum Anderen gibt es jetzt QAptWorker, welcher sich um alle Aktionen kümmert, die etwas an der Paketkonfiguration ändern. (Updates, Paketinstallation/Deinstallation) LibQApt verbindet sich mit QAptWorker über PolicyKit, womit sämtlichen Komfort von PolicyKit nun auch für Paketinstallationen verfügbar ist.

Ein neues Projekt welches das neue QApt nun nutzt, ist Muon, welches der Synaptic-Ersatz für KDE werden könnte. Ich zitiere einfach mal die aktuellen Features von Muon von Jonathans Website:

  • Mächtige, intuitive Oberfläche
  • Schnelle und genaue Paketsuche (benutzt den Xapian-Index von APT und Synaptics Suchalgorithmus)
  • Unterstützung für Filter (Status, Kategorie etc.)
  • Unterstützung für Medienwechsel
  • Debconf-Unterstützung
  • Warunung über oder Verbot der Installation von nicht vertrauenswürdigen Paketen (je nach APT-Einstellung)
  • PolicyKit für privilegierte Aktionen, verbesserte Sicherheit und Desktop-Integration
  • Verbindung mit dem Energiemanagement (zum Anhalten von Transaktionen bei wenig Energie)
  • Unterstützung von Changelogs
  • Paket-Screenshots (von screenshots.debian.org)
Ich habe mir QApt und Muon aus den Quellen kompiliert und nach einigen manuellen Anpassungen läuft es jetzt auch auf meinem System: Das Ergebnis ist schon sehr beeindruckend, wenn auch nicht vollständig stabil.
Hier einige Muon-Screenshots von Jonathan:
Die Hauptansicht von Muon
Paket gesucht & ausgewählt
Details über die Abhängigkeiten eines Paketes
PolicyKit-Sicherheitsabfragen bei privilegierten Aktionen
Die Debconf-Unterstützung

Muon wurde bis jetzt noch nicht von Vielen getestet. Es steht jedoch ein PPA für Ubuntu-Nutzer bereit, die QApt/Muon ausprobieren möchten:

Allerdings ruft Jonathan dazu auf, beim Testen vorsichtig zu sein, da es eben ein sehr neues, ungetestetes Stück Software ist, welches eben in kritischen Bereichen (Paketmanagement) arbeitet. Auf meinem System funktioniert es zwar recht gut, das muss aber nicht für alle Anderen Installationen auch gelten.

Muon wird in Kubuntu 10.10 nicht enthalten sein. Paketmanagement in Kubuntu war durch den schnellen Wechsel von Adept 2 zu Adept 3 Alpha zu einer Qual geworden, und auch die Situation mit KPackageKit war zu Beginn nicht so toll. Also will man hier nicht den gleichen Fehler machen und Muon lieber noch eine Weile reifen lassen, bevor man es zum Einsatz bringt. (KPackageKit ist in Version 0.6 für die meisten Nutzer auch sehr gut geeignet) Einzig der bisherige Python-Basierte Installer für lokale Deb-Pakete könnte eventuell durch eine QApt-Basierte Lösung ersetzt werden. Die großen Änderungen werden dann mit Kubuntu 11.04 kommen.

Wer noch mehr über QApt/Muon wissen will, dem empfehle ich den Blogeintrag von Jonathan zu dem Thema. Ebenfalls lesenswert ist natürlich auch Danttis Blog.

Insgesamt Hut ab vor dieser genialen Leistung von Jonathan! In Sachen Paketmanagement und Softwareinstallation dürften wir dieses Jahr sowieso noch einiges an coolen Neuerungen zu sehen bekommen…

6 Comments

  • JonaWood commented on 27. July 2010 Reply

    Sieht gut aus. 🙂
    Allerdings wird es wohl noch bis nach dem Release von Debian Sqeeze dauern, bis er bereit ist in die Repos zu kommen, weil ja schon im August der Freeze sein soll (wenn er nicht wieder verschoben wird^^). Somit würde diese Version ohne einen qt4-Paketmanager stabil werden (kPackageKit ist wie gesagt nicht dabei), was ich schade finde.

    • Ximion commented on 27. July 2010 Reply

      Ich werde mich mal erkundigen, ob man PackageKit jetzt aufnehmen kann… Aber für die nächste stabile Debian-Version dürfte das zu spät sein, und ein fehlender KDE-Paketmanager ist kein Grund, das Release zu verschieben…
      Vielleicht ist Adept ja noch in den Quellen.

  • Adam commented on 28. August 2010 Reply

    Hallo!

    Gibt es eigentlich eine Möglichkeit statt KPackagekit Synaptic oder Muon als standard-Paketverwaltung zu nutzen (umzustellen)? /in Kubuntu Lucid/

    • Ximion commented on 28. August 2010 Reply

      Das geht natürlich. Wenn Muon oder Synaptic installiert ist, kann man einfach dieses anstelle von KPackageKit nutzen.
      Probleme gibt es nur mit der automatischen Update-Benachrichtigung in KDE, die kommt nämlich von PackageKit und – soweit ich weiß – hat Muon die Funktion derzeit nicht.
      Der GNOME Update-Manager zeigt unter KDE keine neuen Updates an, man kann aber natürlich manuell mit diesem auf Updates prüfen.

      Für Kubuntu-Lucid nutzer könnte es übrigens lohnend sein ein KPackageKit-Update auf Version 0.6.1 und ein PackageKit-Update auf 0.6.7 zu machen. Die KPackageKit-GUI ist wesentlich besser und PackageKit/APTcc unterstützt mehr APT-Features wie z.B. Debconf.

      • Adam commented on 28. August 2010 Reply

        Danke!

        Ich habe leider keine PPA Quelle gefunden.
        Gibt es etwas in die Richtung, oder sollte ich selbst kompilieren/Paket bauen?

  • Adam commented on 28. August 2010 Reply

    Habe es wohl doch noch gefunden…

    https://edge.launchpad.net/~ximion/+archive/packagekit

    Liebe Grüsse!

Leave a Reply

Your email address will not be published. Required fields are marked *