Das Kommandozeilen-Werkzeug Alien baut Brücken zwischen den verschiedenen Paketverwaltungssystemen. Mithilfe des kleinen Tools bereiten Sie für fremde Distribution gedachte Pakete für Ihr eigenes System auf. Dabei gilt es allerdings auf ein paar Stolpersteine zu achten.
Kaum eine Linux-Installation gleicht der anderen. Dabei liegen die Unterschiede nicht nur in der Optik, sondern ziehen sich bis zur Basis des Systems durch. Den kleinsten gemeinsamen Nenner bildet – egal, ob Server, Desktop oder Android-Handy – im Endeffekt nur der Kernel. Das gilt auch für die Paketverwaltung, die unter den einzelnen Distributionen das schnelle und komfortable Installieren von Software ermöglicht.
Im Laufe der Entwicklungsgeschichte des freien Betriebssystems etablierten sich unterschiedlichste Paketmanagementsysteme: Debian und dessen Abkömmlinge wie Ubuntu oder Linux Mint bauen auf das Apt-System, dessen Pakete im Debian-Paketformat vorliegen und daher die Erweiterung .deb tragen. Red Hat, Fedora und OpenSuse setzen auf das ursprünglich von Red Hat entwickelte RPM-Paketmanagement, Mageia und weitere Mandrake-Derivate nutzen dessen Weiterentwicklung URPMI [1]. Bei Slackware und dessen Ablegern kommen mit Gzip und (seit Version 13.0) LZMA komprimierte Tarballs mit den Endungen .tgz, .txz, .tbz oder .tlz zum Einsatz. Daneben existiert noch eine stattliche Anzahl kleinerer Paketverwaltungen, die in der Regel sowohl untereinander als auch mit den Platzhirschen inkompatibel sind.
Alien
Da viele Programmierer Pakete primär nur für jene Plattform bereitstellen, die sie selbst nutzen, gibt es insbesondere für unbekanntere und noch junge Anwendungen oft nur für eine einzige Distribution Pakete. Üblicherweise greifen die Communities anderer Distributionen die Anwendung jedoch schnell auf und erstellen entsprechend geeignete Pakete. Diese lassen sich jedoch häufig nur mit bestimmten Versionen der Distribution nutzen und längst nicht auf allen Derivaten, die das jeweilige Paketformat unterstützen.
In vielen Fällen müssten Sie daher das gewünschte Programm aus dem Quellcode bauen und an der Paketverwaltung vorbei im System installieren. Bei größeren Anwendungen fällt das jedoch nicht gerade leicht, da Sie eventuell auch die vom Programm benötigten Abhängigkeiten in den entsprechenden Versionen bauen müssten – willkommen in der Abhängigkeitshölle.
Stellt der Entwickler nun ein Paket für eine fremde Distribution ins Netz, gibt es für Sie dennoch die Chance, diese zu nutzen. Mit Alien [2] wandeln Sie Pakete in den Formaten DEB, RPM, TGZ, LSB und PKG in das für Sie geeignete Format. In der Regel funktioniert das recht gut; es gilt allerdings, ein paar Dinge zu beachten. Alien finden Sie in den Repositories nahezu aller Linux-Distributionen als gleichnamiges Paket. Nach der Installation steht das Tool zur Nutzung auf der Kommandozeile bereit, eine grafische Oberfläche bietet es nicht.
Syntax
Alien benötigt beim Aufruf im einfachsten Fall als einzigen Parameter das Zielformat. Abhängig vom System und dem umzuwandelnden Paket müssen Sie Alien mit Root-Rechten ausführen, das Programm meldet sich bei der entsprechenden Aktion.
Mit alien -r Quellpaket erzeugt Alien ein RPM-Paket, das Quellformat erkennt das Programm dabei selbstständig. Mit der Option -d liefert es ein DEB-Paket, ein Slackware-kompatibles Paket schreibt es mit der Option -t. Alternativ geben Sie die Formatparameter in der Langform an: --to-rpm, --to-deb und --to-tgz. Ohne weitere Spezifikation erzeugt Alien stets DEB-Pakete.
Bei manchen Programmen führen nun aber im Quellpaket enthaltene Skripte zu Problemen. Diese soll der Paketmanager eigentlich bei der Installation oder auch beim Löschen des Pakets ausführen. Alien ignoriert solche Skripte zunächst, zeigt aber eine Warnmeldung an, die auf deren Vorhandensein hinweist (Abbildung 1 ). In einem solchen Fall erweitern Sie den Aufruf von Alien mit dem Parameter --scripts: Er bewirkt, dass Alien die Skripte in das konvertierte Paket übernimmt.

Abbildung 1: Alien lässt in den Paketen enthaltene Skripte außen vor. Das Programm übernimmt diese nur auf entsprechende Anweisung hin.
Baumeister
Während der Konvertierung eines Pakets gibt Alien eine Reihe wichtiger Informationen aus, die auf Probleme und Fehler während der Umwandlung hinweisen. Als problematisch erweisen sich zum Beispiel Abhängigkeiten, die in den einzelnen Paketverwaltungen unterschiedliche Schreibweisen besitzen. Auch einfache Rechtschreibfehler in den Paketbezeichnungen bemängelt Alien. Zum Beheben solcher Fehler lassen Sie Alien mithilfe der Option --generate den Inhalt des Pakets in ein temporäres Verzeichnis entpacken.
Dort bearbeiten Sie nun den Inhalt des Pakets manuell und beseitigen Fehler, die während der Paket-Konvertierung auftreten. Ein üblicher Trick wäre etwa, in debian/control die Zeile Architecture: i386 in Architecture: amd64 zu ändern, sodass sich ein statisch kompiliertes 32-Bit-Programm in einer 64-Bit-Umgebung installieren und nutzen lässt.
Nach Einbringen der gewünschten Änderungen müssen Sie das Paket manuell bauen: Für ein Debian-Paket rufen Sie dazu debian/rules binary auf, für ein RPM-Paket entsprechend rpmbuild -bb Paket.spec.
In einem Rutsch
Bei in das DEB-Format gewandelten Paketen bietet es sich an, diese direkt mithilfe des Aufrufs alien -d --test Paket auf Fehler zu prüfen. Unter Debian und Ubuntu müssen Sie dazu vorab das Paket lintian installieren. Lintian [3] prüft DEB-Pakete generell auf ihre Konsistenz sowie auf Verstöße gegen das Debian Policy Manual [4] und meldete andere übliche Fehler. Ubuntu-Nutzer kennen Meldungen wie Paket ist in einem sehr schlechten inkonsistenten Zustand, die das Programm bei der manuellen Installation von DEB-Paketen absetzt.
Alien kann Pakete nicht nur umwandeln, sondern das neue Paket im selben Zug gleich auf dem System installieren. Dazu müssen Sie Alien mit Root-Rechten ausführen und am Prompt bei der Befehlseingabe den Parameter -i hinzufügen. Damit Sie sehen, welche Schritte die Software dabei ausführt, sollten Sie die Eingabe noch um den Parameter -v ergänzen, der im Terminal anschließend alle einzelnen Arbeitsschritte des Programms dokumentiert.
Alternativ installieren Sie das erzeugte Paket mit sudo dpkg -i Paket.deb oder sudo rpm -i Paket.rpm aus dem Terminal heraus. Auf Debian-Systemen müssen Sie anschließend oft mit sudo apt-get install -f fehlende Abhängigkeiten auflösen. Grafische Tools wie Gdebi oder das Ubuntu-Software-Center lösen diese Aufgabe hingegen schon bei der Installation des Pakets. Öffnen Sie Alien-Pakete daher besser aus einem Dateimanager heraus mit einem Doppelklick in das grafische Paketmanagement-Tool der Distribution (Abbildung 2).

Abbildung 2: Grafische Tools zur Paketverwaltung wie das Ubuntu-Software-Center lösen bei der Installation von DEB-Paketen die Abhängigkeiten automatisch auf.
Stolpersteine
Die Endung .tgz steht nicht nur für Slackware-Pakete, sondern meistens für einfache Tarballs mit dem Quellcode eines Programms. Diese Dateien eigenen sich nicht für das Umwandeln mit Alien. Zur Installation müssten Sie so ein Programm in der Regel mit dem Linux-Dreischritt ./configure; make; make install kompilieren – weitere Informationen liefert meist eine README-Datei. Alien würde beim Versuch, so ein Paket im System zu installieren, im schlimmsten Fall den Quellcode-Dateien des Archivs quer über das System verstreuen.
Einen weiteren Stolperstein stellen Pakete dar, die nicht der Hardware-Architektur des Systems entsprechen. Nutzen Sie Alien auf einem 64-Bit-System, sollten Sie ausschließlich Pakete umwandeln, die vom Entwickler für 64-Bit-Architekturen gebaut wurden. Das erspart Probleme bei der Installation und die zeitaufwendige Suche nach der Fehlerquelle – zur Not lässt sich so ein Paket allerdings manuell anpassen.
Zudem sorgen in der Regel Abhängigkeiten für Schwierigkeiten, die für den Einsatz des Programms in einer bestimmten Version vorliegen müssen und die es auf dem Zielsystem in dieser Variante nicht gibt. In diesem Fall empfiehlt es sich, diese Abhängigkeiten vom Quellsystem ebenfalls mit Alien zu konvertieren.
Fazit
Mit Alien installieren Sie Programme auch dann, wenn es die Wunschapplikation nicht in einer zur verwendeten Distribution kompatiblen Version gibt. Alien erweist sich jedoch oft als zweischneidiges Schwert: Auf der einen Seite erleichtert es die Installation nicht in der Paketverwaltung vorhandener Software, auf der anderen Seite kann ein umgewandeltes Paket das Paketmanagement gehörig aus dem Tritt bringen. Sie sollten daher auf Alien nur dann zurückgreifen, wenn es unbedingt sein muss.
Einen klassischen Fall stellt beispielsweise die Installation eines Druckertreibers dar: Manche Hersteller stellen diese nur als RPM-Paket zur Verfügung. Mit Alien bauen Sie daraus schnell ein DEB-Paket. Bei Open-Source-Software sollten Sie hingegen besser die Entwickler des Programms oder die Community der von Ihnen genutzten Distribution anschreiben, ob sie nicht ordentliche Pakete für die gewünschte Software bauen möchten. Oft lässt sich zudem mit ein wenig Recherche eine Paketquelle für das gewünschte Programm auftun.
Infos
[1] URPMI: https://wiki.mageia.org/en/URPMI
[2] Alien: http://joeyh.name/code/alien
[3] Lintian: https://lintian.debian.org
[4] Debian Policy Manual: https://www.debian.org/doc/debian-policy





