PackageKit in Debian verfügbar!

Lange hat es gedauert, aber jetzt ist es geschafft: PackageKit ist in den Quellen von Debian Sid!

PackageKit ist eine Abstraktionsschicht für das distributionseigene Paketmanagement. Es erlaubt z.B. die Entwicklung von Paketmanager-Oberflächen für Fedora, openSUSE und Debian/Ubuntu, ohne geau zu wissen, welches Paketmanagement verwendet wird. So hat man auf jeder Distribution die gleiche GUI zu Verfügung und muss sich kaum umstellen. Zudem hat das weitere Vorteile,  z.B. können Anwendungen im Falle eines Crashes automatisch Debuginformationen nachinstallieren, Multimedia-Player fehlende Codecs automatisch nachrüsten oder aber Anwendungen selbstständig PlugIns nachinstallieren. Außerdem bietet PackageKit ein verbessertes Update-Management und viele weitere Funktionen. PK ist mit seiner Oberfläche KPackageKit Standard in Kubuntu.

Die Paketierung für Debian, welche auch in Ubuntu Natty zu finden sein wird, wurde von mir erledigt. Die wirklich wichtige Arbeit haben aber Richard Hughes und Daniel Nicoletti erledigt. Daniel hat einen Weg gefunden, Debconf in PackageKit zu nutzen und hat diesen auch gleich in KPackageKit implementiert, während Richard Hughes, der Erfinder von PK, die letzten Codeteile geschrieben hat, um dem Kommandozeilentool “pkcon” und GNOME-PackageKit Debconf beizubrigen.

Für die, die jetzt denken “Was zur Hölle ist Debconf, und warum ist das so wichtig?”, hier eine kurze Erklärung: Debconf stellt die (meistens grafischen) Konfigurationsdialoge von Debian-Paketen zu Verfügung. Damit lassen sich z.B. bestimmte Einstellungen direkt setzen, wie z.B. Tastaturlayouts etc. PackageKit hat nun jedoch die Designentscheidung getroffen, dass eine Installation, sobald sie einmal angestoßen ist, auf keinen Fall mehr Fragen an den Nutzer stellen darf und völlig unbeaufsichtigt laufen muss. Alle Fragen müssen vor der Installation gestellt werden, während Debconf das jedoch während der Installation tut. (Und es für Debconf auch technisch unmöglich ist, das vorher zu tun)

Aus diesem Grund haben viele Debian-Entwickler PackageKit als “crap” und “broken by design” abgetan und es gab viele teils sehr emotionale Diskussionen vor allem über die “keine-Fragen-während-der-Installation-Regel”. (auch als “Hughsie’s Law” bekannt) Das ging soweit, dass einige wichtige Leute sich komplett gegen PackageKit sperrten und den Prozess, das Paket in Debian aufzunehmen, blockierten. Inzwischen benutzt PK für Debconf einen Workaround,  PK funktioniert nun also mit absolut allen Debian-Paketen, wodurch die PK-Gegner weniger Argumente hatten 😛

Jetzt ist das Paket jedoch “durch”  und Michael Vogt (APT-Entwickler) höchstselbst hat sein okay dazu gegeben. (Michael entwickelt auch das APTd-basierte Ubuntu-Software-Center)

Der Maintainer von SessionInstaller, einer von Debian produzierten Python-basierten Konkurrenzanwendung zu PackageKit hat auch bereits mitgeteilt, das Projekt zu unterstützen bzw. zu helfen die Projekte aufeinander abzustimmen.

Ich bin froh, dass jetzt auch Debian PackageKit hat, was den größten Vorteil von PK, seine Distributionsunabhängigkeit, nun erst richtig zu Geltung bringt. Vielleicht wird sogar das Ubuntu-Software-Center irgendwann auf PackageKit aufbauen. (Es gibt Überlegungen in diese Richtung. Damit könnte das USC von allen anderen Distributionen ebenfalls verwendet werden.)

Danke an alle, die es möglich gemacht haben, PK in Debian zu bringen!

Um allen Gerüchten vorzubeugen: PackageKit ist in den Debian-Repositories, es wird aber keine Standardkomponente einer Debianinstallation sein und auch nicht in Squeeze enthalten sein. (wegen dem aktuellen Freeze)

12 Comments

  • FERNmann commented on 13. November 2010 Reply

    Eine gute Nachricht. Ich bin auch der Meinung, dass alle Fragen an den Nutzer vor der Installation stattfinden sollten, vorallem, wenn man ein System neu aufsetzt – dann will man der Installation ja nicht unbedingt zuschauen.
    Ein einheitliches Paketformat ist damit immer noch nicht erreicht, aber da gibt es ja auch wieder zwei Seiten.

  • Leszek commented on 13. November 2010 Reply

    Sehe ich das richtig, das ein grafisches Frontend bisher bei Debian fehlt ?
    Also KPackagekit um genau zu sein.

    • Ximion commented on 14. November 2010 Reply

      Ja, noch fehlt es… Aber natürlich ist das schon in Arbeit, ich werde demnächst mal fragen, ob jemand Lust hat, das Paket als Co-Maintainer zu betreuen. (Idealerweise das KDE/Qt-Team und das GNOME-Team für beide Frontends)

      • Comstat commented on 20. November 2010 Reply

        Ich hab mir KPackagekit mal angesehen aber davon gibt es ja noch nicht mal ne fertige .deb Datei.
        Keine Ahnung wie tief du in der Sache mit drin hängst aber es wäre cool wenn es diesbezüglich in Zukunft etwas fertiges gibt.
        Andererseits hätte ich auch keine Probleme selbst eine zu erstellen nur muss ich mich dann ein bisschen mit dem Aufbau solcher . deb Packages befassen.

        • Ximion commented on 22. November 2010

          Hmm… Es gibt mindestens 2 PPAs mit KPackageKit drin, in Kubuntu ist KPK standard…
          Wenn du bei der Integration helfen möchtest, kannst du nich gerne bei mir per mail melden. (Ganz einfach über Launchpad, Ximion suchen)

  • Andy commented on 13. November 2010 Reply

    Danke für den informativen Artikel! Interessant auch mal ein bisschen mehr über den Background und die technischen Finessen zu erfahren. Weiter so!

  • Jfly commented on 13. November 2010 Reply

    Die grafischen Oberflächen sind aber noch nicht dabei, oder?
    ..trotzdem, sehr schön. 🙂
    u. wenn es keine (Domino)abhängigkeiten verlangt, kann man es ja trotzdem unter Squeeze installieren – oder?

  • NonKon commented on 13. November 2010 Reply

    PK ist einfach nur überflüssig.

    • FERNmann commented on 13. November 2010 Reply

      Das sehe ich anders. Stell dir vor, du wärst Entwickler, z.B von Totem, und möchtest implementieren, das fehlende Codecs automatisch über die Paketverwaltung installiert werden können. Ohne PackageKit müsstest du das Feature für jede Distribution einzeln implementieren, oder die Distributoren müssten das entsprechend patchen. Das erzeugt nur unnötigen Aufwand und schreckt ab, für Linux zu entwickeln, mit PackageKit hast du eine API die auf jeder Distribution funktioniert, jetzt eben auch auf Debian.

      Apropos: Benutzt Debian eigentlich immer noch sein eigenes Menüsystem oder kann man mittlerweile .desktop-Dateien aus dem Freedesktop.org-Standard benutzen? Vielfalt ist ja schön, aber nur, wenn es reale Vorteile bringt, welche eine Fragmentierung rechtfertigen.

      • Ximion commented on 14. November 2010 Reply

        Die Standard-XDG-Desktop dateien funktionieren problemlos mit KDE und GNOME und Xfce und im grunde jedem modernen Desktop. Mit exotischen alten Desktops kann es Probleme geben, wenn man nicht Debians Menüsystem benutzt. (Die meisten Pakete verwenden aber inzwischen .desktop-Dateien direkt)

  • Geier commented on 12. January 2011 Reply

    Wie ist das Problem mit den Fragen denn jetzt geklärt? Werden während der Installation Fragen an den Benutzer gestellt?

    • Ximion commented on 12. January 2011 Reply

      Ja, ist es damit. Richard hat die Struktur dafür geschaffen und den GNOME-Teil implementiert, ich habe noch Unterstützung für KDE hinzugefügt, womit PackageKit KDE-Debconf Unerstützung sogar noch vor APT hat 😀 Details sind oben im Artikel verlinkt, unter anderem gibt’s auch einen Link zum ausführlichen Bericht von Richard Hughes dazu.

Leave a Reply

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