Alien
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Manchmal steht die Software, die man benötigt, weder als Ubuntu-Paket noch als Quellcode zur Verfügung. Um solche Pakete unter Ubuntu dennoch installieren zu können, gibt es das Programm alien 🇬🇧.
Mögliche Probleme¶
Achtung!
So eine Konvertierung erzeugt oft Probleme, zum Beispiel wenn das fremde Paket von Bibliotheken abhängt, die unter Ubuntu nicht verfügbar sind. Daher kann es notwendig werden solche Bibliotheken ebenfalls über alien zu installieren. Außerdem kann es sehr leicht passieren, dass die konvertierten Pakete die Paketverwaltung völlig aus dem Tritt bringen.
Aus diesem Grund sollte man sichergehen, dass die Software, die man installieren will, wirklich weder als Ubuntu-Paket, als Installationspaket oder als Quellcode vorhanden ist. Die Installation von Programmen, die als Quellcode verfügbar sind, wird in Programme kompilieren beschrieben.
Weiterhin ist zu beachten, dass die Konvertierung im Normalfall nur mit Paketen der gleichen Architektur funktioniert (siehe weiter unten für eine Notlösung).
Unterstützte Paketformate¶
alien ist in der Lage, die folgenden Paketformate zu importieren:
rpm-Pakete im Format des "Red Hat Package Managers", dies ist das am häufigsten verwendete Paketformat
lsb-Pakete im "Linux Standard Base" Format, dieses Format hat den Vorteil, dass Abhängigkeiten übernommen werden können.
tgz-Archive, auch das unter Slackware verwendete übliche Format.
Hinweis:
Die Endung .tgz gibt es nicht nur für Slackware-Pakete, sondern auch als Alternative zu .tar.gz. Alien darf man mit diesen Archiven auf keinen Fall verwenden. Ein gewöhnliches Quellcodearchiv würde seine Dateien womöglich über das gesamte Dateisystem verstreuen. Dieses Archiv müsste wie oben erwähnt kompiliert werden.
Benötigte Software¶
Um aus fremden Paketformaten Ubuntu-Pakete erstellen zu können, müssen folgende Pakete installiert [1] werden:
alien
rpm (für .rpm-Dateien )
lsb (für .lsb-Dateien )
Befehl zum Installieren der Pakete:
sudo apt-get install alien rpm lsb
Vorgehen¶
Achtung!
Damit die Rechte in dem neu angelegten Ubuntu-Paket nicht falsch gesetzt werden, sollte alien mit Root-Rechten, also per sudo
ausgeführt werden.
Ein Ubuntu-Paket wird im Terminal [2] durch diesen Aufruf aus dem fremden Paket erstellt:
sudo alien FREMDES_PAKET
Anschließend findet sich im aktuellen Verzeichnis des Terminals ein .deb-Paket, das man nun installieren [3] kann.
Alternativ kann man auch
sudo alien -i FREMDES_PAKET
verwenden. Hiermit wird das Paket konvertiert und gleich installiert.
Nun sollte sich die installierte Software wie gewöhnlich verwenden lassen.
Anpassen der Pakete¶
Soll der Inhalt des Paketes vor dem Zusammenschnüren in ein Debian-Paket noch bearbeitet werden, so muss die Option -g
angegeben werden. Dadurch wird ein Verzeichnis mit dem Inhalt des Pakets erstellt, das man nun bearbeiten kann:
sudo alien -g FREMDES_PAKET
Skripte mitkonvertieren¶
In manchen Fällen erhält man bei der Konvertierung eine Warnung
Warning: Skipping conversion of scripts in package iscan: postinst postrm preinst prerm Warning: Use the --scripts parameter to include the scripts.
In diesem Fall kann es helfen, die Skripte, die beim Installieren und Entfernen des Paketes ausgeführt werden sollen, mit zu konvertieren. Dies geschieht über die Option --scripts
(oder kurz -c
):
sudo alien --scripts FREMDES_PAKET
32-bit-RPM zu 64-bit-DEB konvertieren¶
Achtung!
Die folgende Anleitung ist nur eine Notlösung und kann mit etwas Pech das System oder die Paketverwaltung völlig unbrauchbar machen. Mit anderen Worten: das nun Folgende ist wirklich nichts für Anfänger!
Sollte Alien kein Paket erzeugen, könnte das daran liegen, dass das Originalpaket für die falsche Architektur vorliegt (im Moment erzeugt Alien dabei leider noch keine Warnung). Es ist eventuell trotzdem möglich, das Paket zu installieren. Hierzu wird die Option --generate
(oder kurz -c
) benötigt, die kein Debian-Paket erzeugt, sondern lediglich das dazu benötigte Verzeichnis erstellt. Gezeigt wird das hier anhand des Der Brockhaus multimedial:
$ sudo alien --generate --scripts bmm-10.0.0-14-intel-linux.rpm Directories bmm-10.0.0 and bmm-10.0.0.orig prepared. $ cd bmm-10.0.0/
Jetzt wird die Datei debian/control mit Root-Rechten geöffnet und die Zeile
Architecture: i386
in
Architecture: amd64
geändert. Jetzt muss nur noch das Debian-Paket erstellt werden:
$ sudo debian/rules binary dh_testdir [...] dpkg-deb: Baue Paket »bmm« in »../bmm_10.0.0-15_amd64.deb«. $ cd ..
Jetzt kann versucht werden, das neue Debian-Paket zu installieren, das im übergeordneten Verzeichnis liegt. Die von Alien erstellten Verzeichnisse (im obigen Fall bmm-10.0.0 und bmm-10.0.0.orig) können anschließend gelöscht werden.
Links¶
Projektseite 🇬🇧
Pakete umwandeln mit Alien - Artikel bei LinuxCommunity 06/2006 🇩🇪