staging.inyokaproject.org

[Kwami] Listaller vs. Ubuntus Paketformat

kwami.png

Matthias Klumpp erläutert in diesem Beitrag seine Sichtweise zu der Entscheidung Canonicals, für Ubuntu Mobile ein eigenes Paketformat zu erstellen. Dabei beschreibt er unter anderen, aus welchem Grund Canonical seiner Meinung nach eher Listaller hätte einsetzen sollen.

Hinweis:

Dieser Artikel gehört der Kategorie Kwami an. Er spiegelt damit allein die Meinung des Autors und nicht zwingend die des ubuntuusers.de-Teams wider.

Worum geht es?

Wie viele sicherlich mitbekommen haben, plant Canonical ein eigenes Paketformat für Ubuntu zu entwickeln, um die Bereitstellung von Anwendungen z.B. für das kommende Ubuntu Phone zu erleichtern. Dabei geht es ausdrücklich nicht um einen Ersatz für dpkg, sondern um eine Ergänzung dazu. So sollen Anwendungen von Drittanbietern einfach installiert werden können, ohne diese erst als DEB-Pakete in einer Paketquelle bereitzustellen.

Nun gibt es jedoch bereits sehr ähnliche Lösungen, welche die Installation von Drittanbietersoftware vereinfachen, z.B. 0install 🇬🇧 oder eben Listaller. Auf das Listaller-Projekt 🇬🇧 möchte ich im Folgenden näher eingehen.

Ein Projekt für jede Aufgabe

Listaller-Logo.png
Listaller Logo

Listaller baut auf einer Reihe weiterer Projekte auf, um zu funktionieren. So benötigt es zwingend PackageKit. PackageKit ist eine Abstraktionsschicht für Paketmanager, welche Schnittstellen zum Paketmanagement über DBus bereitstellt. Im Klartext bedeutet das, dass jede Anwendung über eine standardisierte Schnittstelle einfach Anfragen an den Paketmanager stellen kann (z.B. „Ist Paket X installiert?“ oder „Bitte entferne Paket Y.“). Ubuntu verwendet kein PackageKit, stellt aber über eine Kompatibilitätsschicht die meisten der Schnittstellen bereit.

Des Weiteren gibt es noch das AppStream-Projekt. AppStream stellt Metadaten für die Paketverwaltung bereit, die z.B. beschreiben, welche Anwendung in welchem Paket ist, welches Icon sie hat, etc. Damit ist AppStream das Projekt, welches Anwendungen wie das Ubuntu Software Center möglich macht. Zudem enthalten die AppStream-Spezifikationen Dinge wie einen „Ratings&Reviews“-Dienst, welcher die Bewertung und Kommentierung von Anwendungen ermöglicht. Ubuntu verwendet AppStream, was kein Wunder ist, da AppStream gestartet wurde, nachdem das Ubuntu Software Center bereits existierte, und AppStream zu einem großen Teil aus einer Verallgemeinerung dieses Systems für alle Distributionen besteht.

Was ist das Listaller-Projekt?

Ziel des Listaller-Projektes ist es, Installationen von Software unter allen Linux-Distributionen mit nur einem Softwarepaket zu ermöglichen. Es komplettiert damit AppStream und PackageKit – mehr noch, es ist fest mit beiden Projekten verdrahtet (jedoch gibt es keine fixe Abhängigkeit der beiden vorigen Projekte).

Listaller hat folgende Design-Prinzipien zu erfüllen:

  • Integration: Nutzer sollen nicht merken, dass sie Listaller verwenden. Das bedeutet zum Beispiel, dass sich Listaller-Anwendungen über die globale Update-Anwendung aktualisieren, und dass sie wenn möglich mit existierenden Tools verwaltet werden können.

  • Cross-Distro: Listaller soll auf möglichst allen Distributionen gleich funktionieren.

  • Sicherheit: Skripte in Paketen sind verboten, ebenso wie eine Menge anderer Dinge. Der Installer kontrolliert den gesamten Setup-Prozess automatisch, das Paket selber kann darauf nur indirekt Einfluss nehmen. Zudem sind Listaller-Pakete mit GPG-Schlüsseln signiert.

  • Konfliktfrei: Es gibt keine Konflikte mit der distributionseigenen Paketdatenbank, Listaller-Anwendungen sind unabhängig.

  • Reduktion & Vereinfachung: Listaller-Pakete haben nur eine sehr einfache Art, Abhängigkeiten zu deklarieren. Zudem enthält das System viele andere Vereinfachungen, welche zwar die Möglichkeiten leicht einschränken, aber letztendlich den Installationsprozess robuster machen (und die fehlenden Features werden auch hauptsächlich von Anwendungen gebraucht, die eh besser als natives Paket ausgeliefert werden sollten).

  • Tools zur Cross-Distro-Entwicklung: Listaller stellt Werkzeuge bereit, um Anwendungen auf möglichst vielen Distributionen lauffähig zu halten und Abhängigkeiten zu minimieren.

Was plant Ubuntu?

Das Ubuntu-Installationssystem („Click“) soll nach Colin Watsons Angaben folgende Aufgaben zu erfüllen (sinngemäß aus der Ankündigungsmail übersetzt):

  • keine Abhängigkeiten zwischen Anwendungen, keine Konflikte

  • deklarative Pakete, keine Maintainerscripte

  • keine Limitierung auf Installationen mit Superuser-Rechten

  • Möglichkeit, Pakete auf nicht-Linux-Systemen bauen zu können

  • Binärpakete mit ähnlichem Design zum DEB-Paketformat

  • Möglichkeit, für „hooks“ in existierende Distributionspakete

  • testgetriebene Entwicklung

Warum eine Eigenentwicklung?

Das ist die interessante Frage. Schaut man sich die Anforderungen an das Ubuntu-Paketsystem an, so wurden nahezu eins zu eins die Design-Prinzipien des Listaller-Projektes übernommen. Es gibt genau genommen nur zwei Unterschiede: Listaller wird nicht testgetrieben entwickelt und das Listaller-Projekt läuft nur auf Linuxsystemen. Beides sind meiner Meinung nach keine Kriterien, um eine neue Lösung zu schreiben. Testgetriebene Entwicklung resultiert nicht automatisch in besserer Software (manchmal genau im Gegenteil) und eine Entwicklungsmethode ist kein Argument, sich nicht an einem bestehenden Projekt zu beteiligen. Listaller-Pakete unter anderen Plattformen zu bauen, gehört nicht zu dessen Zielen, jedoch würde niemand Canonical daran hindern, eine Möglichkeit dafür zu implementieren.

Zur Frage, warum nicht eine existierende Lösung verwendet wird, schreibt Colin, dass das „vermutlich keinen Unterschied machen würde“. (Ich weiß nicht, was das für ein Argument ist …) Zum Listaller Projekt meint er, dass er darüber besorgt sei, dass der Listaller einen kompletten Dependency-Solver enthält. Ein Dependency-Solver ist ein Algorithmus, welcher Abhängigkeiten zwischen Paketen möglichst clever auflöst. Alle Paketmanager haben einen, um das Paketsystem in einem konsistenten Zustand zu halten. Der Listaller teilt Abhängigkeiten von Drittanbieterpaketen in zwei „Welten“: „Frameworks“ und „Module“. Framework-Abhängigkeiten müssen vom Distributor zu Verfügung gestellt werden. Zu den Frameworks zählen z.B. die KDE-Frameworks, die GNOME3-Plattform oder auch systemd 🇬🇧 und PolicyKit. Module dagegen können vom Listaller nachinstalliert (Module sind z.B. kleinere Softwarebibliotheken oder aber auch Dinge wie z.B. Wörterbücher). Für letzteres benötigt der Listaller theoretisch eine Möglichkeit, Abhängigkeiten aufzulösen. Da jedoch Module untereinander konfliktfrei sind, ist das Auflösen der Abhängigkeiten sehr einfach. Zudem existiert im Listaller momentan überhaupt kein Dependency-Solver und Distributoren können das Nachladen von Modulen aus Drittanbieterquellen komplett abschalten (das mag in manchen Fällen die Sicherheit erhöhen).

Canonical will in ihrem Design nur „Frameworks“ zulassen, vermutlich sogar nur eine Abhängigkeit zu einem bestimmten API-Level von Unity. Das macht Installationen noch einfacher, schränkt aber auch die Möglichkeiten der Entwickler massiv ein. Für ein OS für Mobiltelefone mit definierter API mag das okay sein. Auf dem sehr heterogenen Linux-Desktop würde eine solche Lösung jedoch nicht gut funktionieren. Ein Installationssystem sollte mit möglichst vielen Konfigurationen zurecht kommen, während der Ubuntu-Installer vermutlich nur für einen einzigen Zweck und ein System designt wird.

Für Canonical wäre es aber insgesamt kein Problem, den Listaller unter diesen Gesichtspunkten zu verwenden. So können z.B. erlaubte Abhängigkeiten vom Distributor im Listaller eingeschränkt werden. Diese Informationen wäre auch Canonical bekannt, wenn sie vorher mal jemanden aus dem Listaller-Projekt gefragt hätten.

Canonical redet nicht mit anderen

Und das ist auch die Sache, die ich wirklich kritisiere: Anstelle die Entwickler der Software, die man vielleicht verwenden könnte, zu kontaktieren und Fragen dazu zu stellen, um zu evaluieren, ob sich die Verwendung der Software lohnt, wird einfach direkt etwas Neues entwickelt. Alle Ziele des Ubuntu-Paketformates sind im Listaller enthalten, nur distributionsübergreifend. Canonical mag spezielle Anforderungen haben, aber anstelle dass man auf die Entwickler der jeweils anderen Lösung zugeht und anfragt, ob man diese Ziele Upstream verwirklichen kann, wird lieber sofort eine Insellösung geschaffen. Als Canonical Mir gestartet hat, hatten sie sich offenbar ebenso wenig über Wayland informiert, geschweige denn mit den Wayland-Entwicklern gesprochen (wie sich später gezeigt hat) wie in diesem Fall. Upstream-Entwickler sind bei weitem nicht Canonical-feindlich und wenn die Entwicklung gut abgestimmt ist, werden auch sehr gerne Patches akzeptiert. Insbesondere das Listaller-Projekt hat sehr wenige Entwickler, und könnte jede Hilfe gebrauchen.

Stattdessen durfte ich mich in den letzten Tagen vor allem rechtfertigen, warum der Listaller eben kein exzessives Auflösen von Abhängigkeiten betreibt, da dies in der Ubuntu-Ankündigung nicht korrekt beschrieben war. Außerdem kommt auch häufig die Kritik „Wenn das Listaller-Projekt schneller gewesen wäre, dann ...“ oder „Konkurrenz belebt das Geschäft“. Das ist in diesem Fall genauso wenig wahr wie im Fall Wayland vs. Mir. Listaller ist ein Projekt mit vielen Aspekten, von denen einige Zeit brauchten, um realisiert zu werden. So musste z.B. erst PackageKit verbessert werden oder die Desktopumgebungen stabile Entwicklungsplattformen bereit stellen, damit das Listaller-Konzept funktionieren kann. Auch AppStream ist ein wichtiger Bestandteil davon. An allen diesen Dingen wurde über die Jahre gearbeitet. Ebenso mussten für Wayland Toolkits angepasst werden und Code aufgeräumt werden. Canonical erntet jetzt die Früchte dieser Arbeit. Eine neue Lösung zu schaffen ist immer nur dann wirklich sinnvoll, wenn man etwas schafft, was die vorigen Projekte nicht konnten und was aus verschiedensten Gründen nicht mit diesen hätte realisiert werden können.

Warum also wirklich eine Eigenentwicklung?

Für mich ist der Grund für den Alleingang ganz klar die Kontrolle über den Software-Stack und die Möglichkeit, Änderungen schneller durchzuführen. Dadurch, dass Canonical einen Großteil des Stacks kontrolliert (Upstart, Unity, Mir, Aptd, Compiz, Click, ...) können Änderungen noch schneller umgesetzt werden. Arbeiten Canonical-Mitarbeiter an einem Upstream-Projekt, so muss man sich immer mit anderen Parteien abstimmen, um ein Feature umzusetzen. Kontrolliert man hingegen die Entwicklung, entfällt dieser Schritt. Zudem „besitzt“ Canonical über die CLAs erweiterte Rechte am Code, was das Unternehmen natürlich an sich wertvoller macht. Weiterhin schafft sich Ubuntu so natürlich auch Alleinstellungsmerkmale.

Ich sehe diese Entwicklung sehr zwiespältig, da vor allem das Abstimmen mit den anderen Entwicklern nahezu immer zu besseren Lösungen und erfolgreichen Projekten führt. Insbesondere wenn einige Entwickler bereits Jahre an einem bestimmten Problem arbeiten, kann man häufig „Expertenhilfe“ bekommen. Andererseits kann ich auch teilweise nachvollziehen, dass Canonical und Mark möglichst viel der Entwicklung kontrollieren wollen, denn nur so lässt sich vermutlich die „Ubuntu-Vision“ am besten umsetzen.

Allgemeines zu Canonicals Entwicklung

Für mich und einige aus der Community hingegen ist die Ubuntu-Entwicklung teils sehr frustrierend, vor allem weil man nicht weiß, was Canonical hinter verschlossenen Türen zusammenkocht. Man kann sich nicht sicher sein, ob Ubuntu-Entwickler nicht gerade an einem weiteren geheimen Projekt arbeiten, was ein Upstream-Projekt ersetzt. Dadurch sind Planungen unmöglich. Z.B. hatten einige Leute bereits viel Arbeit in „Ubuntu on Wayland“ gesteckt, während Canonical-Entwickler bereits längst von Mir wussten (aber nichts sagen durften). Ebenso hätte man zumindest die Verantwortlichen der Ubuntu-Derivate informieren sollen.

Auch vorgeschobene Argumente gegen andere Projekte sind in meinen Augen ganz schlechter Stil, wenn man dagegen einfach sagen würde „Wir wollen eine Lösung unter unserer Kontrolle, welche wir eng ins System integrieren können“ wäre das völlig in Ordnung. Ebenso kann es nicht sein, dass der Projektleiter Community-Mitgliedern Spaltung der Community vorwirft, anstelle zu versuchen, diese Probleme zu lösen (ich denke da an Mark Schuttleworths Kommentar zu Jonathan Riddell).

Alles in allem habe ich selber das Vetrauen in Canonical verloren, nicht zuletzt auch durch diverse technisch unsinnige Entscheidungen des Projektes und die etlichen Rewrites von Unity.

Konsequenzen?

Ein eigenes Paketformat für Ubuntu-Apps ist bei weitem nicht so problematisch wie ein zweiter Displayserver. Es ist dennoch sehr schade, da das Ubuntu-Format sehr wahrscheinlich Ubuntu-spezifisch wird und die Chance auf eine distributionsübergreifende Lösung vertan wird.

In der Diskussion um den Paketmanager erklärte Colin Watson, dass sie gerade die Listaller-Dokumentation lesen – was an sich gut ist. Bis heute habe ich jedoch keine Rückfragen bekommen, ebenso wenig wie eine Anfrage, vielleicht mal auf dem Ubuntu Developer Summit darüber zu sprechen. Insofern glaube ich nicht, dass Ubuntu noch eine externe Lösung verwenden wird.

Über den Autor

Matthias Klump, in diesem Portal als Ximion bekannt, ist unter anderem Maintainer von Listaller, arbeitet aber auch an Projekten wie Debian, freedesktop.org oder PackageKit mit. Zudem ist er einer der Mitinitiatoren von Tanglu, einer Debian-basierten Linux-Distrubution.

Veröffentlicht von katze_sonne | 1. Juni 2013 18:55 | Kategorie: Kwami | # Fehler im Artikel melden

Klau3

Avatar von Klau3
1 1. Juni 2013 22:10

Matthias, vielen Dank für diesen sehr interessanten Kwami.

charly700

Avatar von charly700
2 2. Juni 2013 02:48

Finde auch das Ubuntu schön langsam immer uninteressanter wird, zumindest in der Standartinstallation mit Unity & CO. Super Artikel.

barcc

Avatar von barcc
3 2. Juni 2013 07:25

Listaller baut auf einer Reihe weiterer Projekte auf, um zu funktionieren. So benötigt es zwingend PackageKit. PackageKit ist eine Abstraktionsschicht für Paketmanager, …

Eine zusätzliche Abstraktionsschicht auf einem Mobiltelefon? Wozu? Das Click-Dingens soll aus Performance-Gründen die Paketdatenbank sowieso nicht öffnen. Also ohne PackageKit, was würde dann von Listaller noch übrig bleiben?

pitt-admin

4 2. Juni 2013 09:04

Ja ich glaube das Ubuntu mit der Zeit ein zweites Appleähnliches-System wird und Community - Projekte, wie X/L/K-ubuntu, hinten rausfallen. Vorsorglich habe ich meine Distri gewechselt und werde Ubuntu weiter beobachten. 👿

Danke für den guten Artikel.

Gruß

DPITTI

Avatar von DPITTI
5 2. Juni 2013 10:47

Hm da kann man auch gleich wieder zu "Windows" oder ähnliches wechseln 😈 Mark trägt doch Ubuntu damit ins Grab. Wozu noch eine Paketverwaltung da gibt es doch viel zu viel von.Mal sehen wie sich das ganze noch Entwickelt. Werde aber wenn das so weiter geht wieder zu "Windows" wechesln 😀

Fredo

Avatar von Fredo
6 2. Juni 2013 12:57

Danke für den interessanten Beitrag!

Ich finde die breitere Diskussion sehr wichtig, und daher auch danke für die ausgeglichene Darstellung der Vorteile von Upstream-Beteiligung und Eigenentwicklung. Ich verstehe die Bedenken, dass hier wieder eine eigene Lösung entwickelt wird, die sich zwar leichter an Ubuntu-spezifische Vorgaben ausrichten lässt, aber dafür die Gelegenheit einer breiteren Basis ungenutzt lässt.

Ich glaube aber, dass sich die Art der Ankündigung von Click vs. Mir unterscheidet: Hier hat Colin Watson ein paar grundlegende Überlegungen beschrieben und einen frühen Proof-of-Concept vorgestellt. Damit hat er ziemlich früh die eigenen Überlegungen vorgestellt, die Entscheidung für den Ausbau des eigenen Ansatzes vs. der Nutzung bestehender Projekte noch offen gelassen, und Raum für eine Diskussion eröffnet. Natürlich kann man bezweifeln, ob die Diskussion tatsächlich so offen ist, dass am Ende Listaller oder ein ähnliches Projekt einbezogen wird, aber ich finde schon, dass der Prozess (nicht unbedingt das Ergebnis) wesentlich offener und transparenter war als der bei Mir.

Außerdem frage ich mich, ob Click nicht das macht, was Listaller und andere früher auch schon gemacht haben: Wenn man sich anguckt, wie viele potenzielle Upstream-Alternativen für Click mit 0install, Listaller, etc. bestehen, kann man sich ja auch bei jedem einzelnen dieser Projekte fragen, warum sie nun ausgerechnet ein neues Paketformat entwickelt haben, anstatt die bestehenden zu verwenden. (Nicht, dass das nicht legitim und im Detail gut zu begründen wäre, nur sind Canonical auch nicht die ersten, die eine Eigenentwicklung bestehenden Ansätzen vorziehen.)

Ximion

Avatar von Ximion
7 2. Juni 2013 16:17

Vielen Dank für die viele positive Kritik!
@3: Ganz so einfach ist das nicht. Der Listaller braucht PackageKit zum einen zum Zugriff auf die Paketdatenbank - das lässt sich aber abschalten, wenn man es nicht will. Zum anderen hängt der Listaller als Plugin im PackageKit-Dienst mit drin, um so Listaller-Apps auf allen PackageKit-Frontends zu zeigen. Das kann man theoretisch auch sein lassen, man hätte dann aber viele Nachteile. Z.B. ist PK nicht "nur" eine Abstraktionsschicht, sondern auch ein Transaction-Daemon, welcher Anfragen an die Paketdatenbank und Listaller aufnimmt und in einer Warteschlange abarbeitet. Würde man das nicht haben, so würde jede Installation sofort alle anderen blockieren. Damit macht PackageKit genau das gleiche, was auch Ubuntu's Aptdaemon macht. Für Mobiltelefone kann man nun theoretisch den Zugriff auf die Paketdatenbank verhindern. PK als transaction-daemon braucht man aber auf jeden Fall, z.B. auch für Systemupdates. Dabei sollte PK sogar noch besser als Aptd auf Mobilen Plattformen laufen, da es vollkommen in C geschrieben ist, welches weniger Ressourcen als Python braucht (in dem Aptd geschrieben ist) und theoretisch auch schneller läuft. Im Mobilfunk-Bereich hat OpenMoko gezeigt, dass PK dort gut läuft, und auch Mer/Tizen verwenden es meines Wissens.
@6: Ja, die Situation ist viel besser als bei Mir, allerdings hätte Colin vorher mal bei 0install und Listaller anfragen können, wie die Projekte funktionieren und was Probleme sind, um 1) Seine Lösung zu verbessern und 2) sofort fundiert zu begründen, warum er überhaupt ein Proof-of-concept machen muss, und warum der Test nicht war "Ich habe 0install und Listaller beide ausprobiert, dabei ist mir folgendes aufgefallen ... ich stehe mit den Entwicklern in kontakt, und wenn sich die Probleme nicht Lösen lassen, besteht die Option eine eigene Entwicklung mit Features XYZ zu starten". Ich habe angeboten, mal darüber zu sprechen, eine Reaktion darauf blieb aber aus - ebenso wurde niemand aus dem 0install-Lager angesprochen.
Zum Punkt Upstream-Alternativen: Für 0install und Listaller gibt es legitime Gründe, warum das zwei Projekte sind. Für die GNOME-Glick-Lösung ebenfalls, da diese technisch komplett verschieden ist. Diese drei Projekte sind momentan die einzigen Alternativen. Würde man jetzt eine Eigenentwicklung schaffen, die wirklich irgendwas komplett anders macht, wäre das noch einigermaßen okay, aber der Ubuntu-Kram ist im Grunde ein Aufguss des Listaller-Designs ohne Cross-Distro-Komponente, und das ist meine Kritik daran. Zudem sind drei Lösungen noch nicht wirklich viele, zumal Listaller in seiner Geschichte zwei andere Lösungen quasi "ersetzt" hat. Das Problem daran, einen derartigen Installer zum erfolg zu führen ist zudem eher nicht das Paktformat, sondern eine soziale Komponente: Man muss die Disributoren dazu bringen, den Installer zu Verfügung zu stellen. Listaller's integrativer Ansatz und die Kopplung mit AppStream und PackageKit ist dabei sehr erfolgversprechend (natürlich logisch, dass ich mein eigenes Projekt gut finde ^^).
Wohin die reise gehen soll, hat Richard (Autor von PK) in seinem Blog neulich erst zusammengefasst: "I presented (and demoed) gnome-software with its plugin architecture that would allow us to switch to using packages and blobs like glick and listaller" - leider ist es viel Aufwand, AppStream und Listaller überall sauber zu integrieren, aber wir arbeiten daran ☺
(sorry für die lange Antwort ^^)

barcc

Avatar von barcc
8 2. Juni 2013 20:37

@7: Ums nochmal ganz klar zu sagen, bei der Installation Click-Paketen soll kein Zugriff auf die Paketdatenbank erfolgen, das wurde auf der Mailingliste klar kommuniziert, man braucht dabei also weder Packagekit noch den Aptdaemon. Desweiteren sollen Click-Pakete auch nur eine Ergänzung sein, für das Grundsystem hat Ubuntu bereits eine funktionierende Lösung (apt), man braucht dort also auch kein PackageKit. Der mögliche Geschwindigkeitsvorteil von PK ist irrelevant, da weder PK noch der Aptdemon bei der Installation von Click-Paketen gebraucht werden. Was OpenMoko und Mer/Tizen betrifft, weis ich nicht, was die verwenden, aber ich würde mich doch sehr wundern, wenn die PK und den Aptdaemon verwenden (ich bezweifle ja nicht den Sinn von PK, nur Ubuntu brauchts nicht). Die Frage bleibt also: Was bleibt also von Listaller übrig, wenn man die PK-Infrastruktur (die man ja nicht braucht) entfernen (oder abschalten) würde? Ach ja, ein Dateiformat hat Ubuntu auch schon (deb).

Bitte verstehe mich nicht falsch, ich bewundere dein Engagement, aber ich verstehe nicht, was Ubuntu damit anfangen soll und warum du glaubst, Listaller und der Click-Kram wären vom Design vergleichbar. Click soll viel weniger sein und integriert mit der Ubuntu-Infrastruktur und nicht mit PK.

(auch sorry für die lange Antwort ^^) ☺

Ximion

Avatar von Ximion
9 2. Juni 2013 21:36

@8: PK oder Aptd sind eh da, um das Basissystem, welches ja auf Dpkg basiert, auf den aktuellen Stand zu bringen. Mit entsprechenden Einstellungen öffnet der Listaller die Paketdatenbank des Systems *nicht*, was natürlich die Möglichkeiten, Abhängigkeiten aufzulösen einschränkt. Listaller ohne PK könnte damit ausschließlich Framework-Abhängigkeiten, die bereits installiert sind auflösen, und das ist genau das, was Ubuntu will. Das DEB-Format ist für einen Zweck, wie Ubuntu ihn haben will gänzlich ungeeignet, sie werden sich also was neues ausdenken müssen, zumal da eine Namensverwirrung bestehen würde (Systempakete vs. 3rd-party-Pakete).
Warum Listaller und der Click-Kram vergleichbar sind: Die Designziele beider Projekte sind quasi gleich (siehe Artikel), und der einzige Unterschied zu jeder anderen Distro, den Ubuntu hat, wäre Aptd.
Und in Punto Ergänzung für's Grundsystem: Ich zitiere mal den zweiten Satz der Listaller-Dokumentation: "Listaller is no replacement for the package management system of your current distribution, it is merely designed to install additional 3rd-party applications which are not part of the main distribution repositories and do not require tight system integration." Die Design-Ziele vom Listaller sind dokumentiert, man muss die docs nur lesen 😉
Und Ubuntu braucht sehr wohl PackageKit, allerdings simuliert der Aptd momentan einen Teil der PK-Schnittstellen. Genau genommen ist das einzige tool, welches Aptd wirklich braucht das Software-Center. Außer Ubuntu (und Derivate) verwendet soweit ich weiß niemand Aptd.

Ximion

Avatar von Ximion
10 2. Juni 2013 22:52

Um mal Quellen hinzuzufügen: Listaller Project Goals in der Dokumentation, sowie für Frameworks: Known Frameworks. Fügt man bei den Frameworks ein "Unity"-Framework hinzu und deaktiviert alle anderen Möglichkeiten, Abhängigkeiten aufzulösen (was möglich ist), so hat man Click. (und ein Unity-Framework hinzuzufügen ist trivial, ich hätte auch nichts dagegen, die Framework-Definition standardmäßig auszuliefern, würde dann aber den Paketgenerator eine Warning ausgeben lassen, dass das erzeugte Paket Ubuntu-spezifisch ist, wenn "Unity" verwendet wird (AFAIK gibt es Unity nur in Ubuntu) - das werde ich vermutlich sowieso machen, sobald der Listaller das kann 😛)
P.S: Die docs sahen vor kurzem noch anders aus, der Inhalt ist aber gleich geblieben.

diesch

Avatar von diesch
11 3. Juni 2013 02:42

So wie ich das sehe, sind die Ziele von Listaller und Click zwar sehr ähnlich, aber nicht wirklich identisch:

Einerseits kann Listaller sehr viel mehr als Ubuntu benötigt. Das bedeutet aber auch mehr Code und damit mehr Fehlermöglichkeiten.

Andererseits fehlen Listaller aber auch Features, die Ubuntu benötigt. Soweit ich sehe, sind das vorallem die Hooks und ein plattform-übergreifendes Tool, um Pakete zu bauen.

Möglicherweise will Ubuntu bei Smartphones auch ohne Dpkg und/oder aptdaemon auskommen können (ich verfolge da die Entwicklung nicht näher). Dann wäre die Abhängigkeit von PackageKit bei Listaller ein Problem.

Zudem würde, wie du selbst schreibst, die Verwendung von Listaller die Entwicklung vermutlich verzögern, und das kann sich Ubuntu gerade jetzt eigentlich nicht leisten.

Ich sehe daher kaum Vorteile für Ubuntu darin, Listaller zu verwenden, dafür aber mindestens einen schwerwiegenden Nachteil. Daher kann ich gut nachvollziehen, wenn Ubuntu wenig Interesse an Listaller hat - auch wenn das für Listaller natürlich schade ist.

jo-master

Avatar von jo-master
12 3. Juni 2013 07:29

Wenn das neue System Ubuntu-spezifisch wird, sehe ich keinen Sinn darin. Dann können auch Drittanbieter ihr Zeugs in ein DEB-Paket packen. Ich sehe sowieso nicht wieso, dass abschrecken sollte.

Ximion

Avatar von Ximion
13 3. Juni 2013 10:42

@11: Ubuntu ohne Dpkg geht praktisch nicht - das würde bedeuten, das System als einen nicht-modularen Block abzuliefern, und ist auch zum Testen wenig clever. Auch Apt wird vermutlich drin sein, das sehen die Specs soweit ich weiß vor. Was diese "hooks" sein sollen, ist mir noch nicht so ganz klar, allerdings denke ich, dass das in etwa das gleiche ist, was Listaller durch seine automatische Systemintegration bereits macht (je nachdem, was so installiert wird triggert der Listaller automatisch die nötigen Aktionen im System, um die neuen Komponenten zu integrieren). Ein Plattform-übergreifendes Tool zum Erstellen der Pakete könnte Ubuntu selber machen, oder einfach mal versuchen, einen Teil des Listallers unter Windows zu kompilieren (ich habe da selber zwar kein Interesse dran, hindere aber niemanden dran, das zu tun).
Wenn die Abhängigkeit zu PK ein Problem wäre, hätten sie das als gültigen Grund erwähnt 😉 Ob die Entwicklung schneller geht oder nicht ist nicht ganz klar, da sie ja etwas neues entwickeln, wobei jedoch das eigentlich komplizierte, die Distro-Interoberabilität, wegfällt.
Ich sehe genau darin, dass die Ubuntu-lösung eben *nicht* mit dem Ziel designed wurde, auch für andere nutzbar zu sein, ein Problem. Denn es ist sehr einfach, eine Lösung für das Installer-Problem zu finden, jedoch sehr schwierig, eine wirklich gute Lösung zu finden. Sowohl ZeroInstall als auch Listaller sind bereits durchdachte Konzepte, die man einfach verwenden kann und die überall funktionieren (für Listaller gilt das zumindest mit der übernächsten version 0.6, welche produktiv einsetzbar sein wird). Meiner Meinung nach ist das deutlich attraktiver, als ein neues, Distro-spezifisches Paketformat, und wäre mögliche Unannehmlichkeiten in jedem Fall wert gewesen.
@12: Ein DEB-Paket zu erstellen kann schon - je nach Anwendungsfall - recht kompliziert sein, und durch die scriptingmöglichkeiten im Paket hat jeder Paketauthor praktisch Root-Rechte auf dem Zielsystem. Selbst wenn das Format Ubuntu-spezifisch ist, ist es also nicht umbedingt sinnlos (aber IMHO sehr viel weniger attraktiv).

barcc

Avatar von barcc
14 4. Juni 2013 01:18

@9: Wie eine deb-Datei aufgebaut ist, weist du doch, ein paar Metadaten weglassen, Scripte weglassen, … von "gänzlich ungeeignet" kann hier keine Rede sein, Tools, Wissen und Workflows wiederverwenden ist dagegen wahrscheinlich entscheidender. PK vs. Aptd: selbst wenn Ubuntu aptd gegen PK austauscht (warum auch nicht), click-Pakete brauchen es immer noch nicht….

Vielleicht noch ein Wort zur Distro-Interoberabilität: Das Problem ist wirklich nicht das Paketformat, sondern die darin verpackten Programme. Glaubt hier jemand, dass für das Ubuntu-SDK geschriebene Programme so ohne weiteres auf Fedora/Gnome-Shell funktioneren, nur weil sie mit Listaller installiert wurden? (Ja, der normale Benutzer mag integrierte Sofware wie der Hacker sein Terminal)

☺ Ich will freie Software auf meinem PC, Tablet, Telefon, Toaster, … und zwar sofort! Und nicht erst wenn alles auf jeder anderen Distri läuft. Ach ja, das Leben ist so kurz … ☺

B601

15 4. Juni 2013 07:27

@4 und 5:

Vorsorglich die Distribution zu wechseln, ist in etwa so, wie sich vorsorglich die Brüste amputieren zu lassen, weil das Angela Jolie auch tat. Derzeit gibt es keinen Grund anzunehmen, dass Ubuntu mit 87 % Wahrscheinlichkeit Krebs bekommt, und wenn es so weit ist, dann ist die Distri in zwei Jahren genauso schnell oder langsam gewechselt wie jetzt.

Aus demselben Grund fährt Mark Ubuntu auch nicht an die Wand. Er will in erster Linie ein System, das reibungslos auf allen Geräten, vom Server bis zum Smartphone, funktioniert, und zwar ohne Optimierungen für eine bestimmte Systemarchitektur, die dann ein Hindernis bzw. einfach unnötig mitgeschleppter Code auf einem anderen sind. Daher Mir = Wayland, abgespeckt um Optimierungen für den Desktop, und Click = Listaller, abgespeckt um alle Schnittstellen zu Desktop-Paketverwaltungen. Man könnte fast sagen, Mark will zurück zur Grundphilosophie von Unix: "Jedes Programm soll nur das absolut Notwendigste tun, das dafür aber schnell und effizient."

Wer wissen will, wohin es geht, sehe sich Android an: Android ist prinzipiell auch auf allen Maschinen lauffähig; das hätte vor wenigen Jahren keiner gedacht, als die ersten Smartphones heraus kamen. Nur ist Android kein optimales Beispiel, weil es viel zu proprietär und genau genommen gar kein GNU/Linux-System ist (das beginnt beim eigens angepassten Kernel, geht über zur lustigen Mischung aus GNU- und BSD-Bibliotheken und zur fehlenden POSIX-Kompatibilität). So gesehen ist selbst ein zukünftiges "Server-/Desktop-/Tablet-/Smartphone-/TV-Ubuntu" viel näher am Mainstream als Android, obwohl gerade dieses oft als "Erfolg für 'Linux'" heraus gestrichen wird.

diesch

Avatar von diesch
16 4. Juni 2013 16:39

@12: Die Hautgründe für die Entwicklung eines neuen Paketformats sind nicht, dass .deb schwierig zu erstellen ist, sondern:

  • Die Installation mit dpkg dauert auf Smartphones zu lange, da der Zugriff auf die Paketdatenbank sehr langsam ist.

  • Ein böswilliger oder inkompetenter Autor kann mit einem .deb-Paket die Paketverwaltung oder das komplette System beschädigen. Für Apps, die von Drittanbietern über das Software Center vertrieben werden, gelten deswegen einige Einschränkungen, die aber teilweise von Hand überprüft weerden müssen. Das ist aufwändig und bedeutet, dass ein Autor oft lange warten muss, bis seine App verfügbar ist.

  • Auch ein Abbruch der Paketinstallation (z.B. weil der Akku leer ist) kann die Paketverwaltung oder das komplette System beschädigen.

@13: Für Entwickler und viele fortgeschrittene Benutzer ist dpkg natürlich unverzichtbar. Für viele Endverbraucher würde es aber reichen, wenn das System bei Bedarf als ganzes per Image aktualisiert wird und der Benutzer nur "Click"-Pakete installieren kann. Dadurch kann man viele Fehlerquellen vermeiden, so dass das System robuster wird.

Bei den "Hooks" geht es darum, dass System-Programme (also Programme, die nicht mit Click installiert wurden) angeben können, dass bestimmte Aktionen augeführt werden, wenn ein Click-Paket bestimmte Dateien oder Metadaten enthält.