# Autopackage

Autopackage war ein alternatives Linux-Softwareinstallationssystem. Ihr Zweck war eine einfache Installation von Software, unabhängig von der verwendeten Linux-Distribution. Sie sollte sowohl Nutzern als auch Entwicklern das Leben erleichtern, indem sie es ermöglicht, nur ein einziges Paket zu erzeugen, das sich vom Nutzer auf jedem beliebigen Linux-System mit einem Klick installieren und auch wieder löschen lässt. Durch die mögliche direkte Verbreitung von Software hat der Anwendungsanbieter mehr Kontrolle über Produktupgradezyklen. Es wurde von etablierten Open-Source-Projekten wie AbiWord, Inkscape oder Gajim erfolgreich eingesetzt.

## Funktionsweise

Autopackage selbst ist ein Shellskript, welches das zu installierende Programm beinhaltet. Bis auf die Bash ist kaum zusätzliche Software nötig. Sollte Autopackage auf dem System fehlen, wird das Programm automatisch heruntergeladen und installiert. Die Installation des Programmes ist skriptgesteuert und lässt sich dadurch flexibel anpassen und weiter automatisieren. Der Installationsprozess soll praktisch keine Benutzerinteraktion erfordern. Benutzern kann es auch erlaubt werden Pakete ohne Root-Passwort zu installieren. Abhängigkeiten werden automatisch und unabhängig von der eingesetzten Paketverwaltung des Stammsystems aufgelöst, heruntergeladen und installiert. Zur besseren Integration auf dem Linux-Desktop gibt es grafische Interfaces sowohl für Qt und GTK+, aber auch eine textbasierte Schnittstelle für Terminals.

## Herausforderungen

Autopackage unterliegt jedoch einigen Einschränkungen, besonders im Bereich der Binär-Kompatibilität des Linux-Ökosystems, weswegen seine Verbreitung überschaubar ist. Nach wie vor sind einige Probleme nur teilweise oder noch gar nicht gelöst. Zum Beispiel kann die Verwendung der Versionen 3.4 oder 4.0 des GNU-C++-Compilers zu früheren gcc-Versionen ABI-inkompatiblen Code erzeugen. Dieses Problem betrifft unter anderem das Qt-Toolkit, welches in C++ geschrieben ist.
Auch die Zusammenarbeit mit den Distributions-eigenen Paketverwaltungen klappt noch nicht immer reibungsfrei. So können installierte Pakete fälschlicherweise als eigene identifiziert und diese im Zuge von Veränderungen irrtümlich deinstalliert werden, da die jeweils andere Paketverwaltungssystem von dieser Deinstallation jedoch nichts mitbekommt wird angenommen, diese Pakete wären noch vorhanden und so kommt es in beiden Paketverwaltungen zu falschen Paketlisten.
Auch das Umplatzieren (Relocation) von Applikationen zwischen verschiedene Verzeichnissen ist in Linux nicht vorgesehen, Pfade werden typischerweise zur Compilezeit in der Anwendung hart-codiert. Die Autopackage-Bibliothek binreloc löst dieses Problem jedoch über die Bereitstellung von Funktionalität vergleichbar der Win32-API-Funktion GetModuleFilename wodurch Verzeichnis relokierbare Anwendungen und Bibliotheken möglich werden.

## Entwicklungsgeschichte

Vision des 2002 von Mike Hearn gestarteten Projekts war auch eine Weiterentwicklung von Linux zu einer Desktop-Plattform. Technisch sollte dazu eine binärkompatible Plattform mit stabilen ABIs entstehen, ähnlich Windows oder Mac-OS, hierzu sollte mit der LSB kooperiert werden. Als weiterer Aspekt sollte ein Fokuswechsel stattfinden: Weg von den bereits gut ausgebauten „Corporate-Desktop“ Administrationswerkzeugen und Strukturen, hin zu den Desktopanwendern und deren Bedürfnis nach „Simplen Lösungen“. Damit einhergehen sollte eine schärfere Differenzierung zwischen Anwendungssoftware und Systemsoftware, wodurch differenziertere Sicherheitsmaßstäbe und Update-Zyklen angelegt werden könnten. Dieser weitgehende Ansatz wurde von vielen aus der Linux-Community kritisiert, besonders aus dem Umfeld der Distributionen.
2006 zeigte sich Hearn in einem Vortrag auf der Free Standard Group’s Packaging Summit Konferenz der Linux Foundation pessimistisch über die Chancen die großen Distributionen zur Kooperation bewegen zu können. Als Grund nannte er das Konkurrenzdenken der Distributionen untereinander, welches Weiterentwicklung in Richtung übergreifender Standards verhindere. Weiter kritisiert Hearn das vorherrschende Modell des Paketmanagements direkt als „überholt“ und „anti-demokratisch“:
   „The whole idea of packaging/installation is bogus and leftover from the times when software was distributed on floppy disks, […] The web 'instant activation' model is better but requires advances in client-side platforms first around streaming and security.“
Obwohl die meisten technischen Probleme gelöst wurden und auch einige namhafte Anwendungen Autopackage verwendeten, gelang es dem Projekt nicht, breiteren Zuspruch zu erringen. 2007 kam der Autor des Linux.com-Artikel Autopackage struggling to gain acceptance zu dem Schluss, dass eine mögliche, schmerzhafte Lehre des Autopackage-Projekts die scheinbare Unmöglichkeit größere Änderungen an der Infrastruktur des Linux-Ökosystems zu erreichen, sei. Projektinitiator Mike Hearn wechselte schließlich zu Google und gab die Projektführung von Autopackage ab.
2010 wurde das Projekt dann eingestellt, dazu wurde auf der Homepage auf Alternativ-Projekte verwiesen: Listaller, Zero Install, portablelinuxapps.org (heute AppImage.org) und das MojoSetup. Teile der Codebasis wurden vom Listaller-Projekt übernommen.

## Ähnliche Softwareprojekte

* OpenPKG derzeit werden 1478 installierbare Softwarepakete angeboten
* PortableLinuxApps (Klik-Nachfolger)
* Listaller (Memento vom 28. Januar 2013 im Internet Archive)
* Zero Install
* Tabellarischer Vergleich der Autopackage-Eigenschaften mit anderen Ansätzen, Zeroinstall-Analyse, klik-Tabelle.