staging.inyokaproject.org

Alien

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


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 

Oder mit apturl installieren, Link: ,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.

Diese Revision wurde am 30. November 2020 21:48 von schollsky erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: rpm, Paketverwaltung, Shell, Konvertierung