[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Paketen] [:Terminal: Ein Terminal öffnen] [:Paketinstallation_DEB: Manuelle Installation einzelner Pakete] }}} [[Inhaltsverzeichnis(1)]] Manchmal steht die Software, die man benötigt, weder als [:Paketinstallation_DEB:Ubuntu-Paket] noch als [:Programme_kompilieren: Quellcode] zur Verfügung. Um solche Pakete unter Ubuntu dennoch installieren zu können, gibt es das Programm [http://kitenet.net/~joey/code/alien/ alien] {en}. = Mögliche Probleme = {{{#!vorlage Warnung 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 [#32-bit-RPM-zu-64-bit-DEB-konvertieren 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. {{{#!vorlage 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: {{{#!vorlage Paketinstallation alien rpm, für '''.rpm'''-Dateien lsb, für '''.lsb'''-Dateien }}} = Vorgehen = {{{#!vorlage Warnung 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: {{{#!vorlage Befehl 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 {{{#!vorlage Befehl 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: {{{#!vorlage Befehl sudo alien -g FREMDES_PAKET }}} [[Anker(scripts)]] == 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`): {{{#!vorlage Befehl sudo alien --scripts FREMDES_PAKET }}} == 32-bit-RPM zu 64-bit-DEB konvertieren == {{{#!vorlage Warnung 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 [:Archiv/Der_Brockhaus_multimedial:Der Brockhaus multimedial]: {{{#!vorlage Befehl $ 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: {{{#!vorlage Befehl $ 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 = * [http://joeyh.name/code/alien/ Projektseite] {en} * [http://www.linux-community.de/Internal/Nachrichten/Pakete-umwandeln-mit-Alien Pakete umwandeln mit Alien] - Artikel bei LinuxCommunity 06/2006 {de} # tag: Paketverwaltung, Shell, rpm, Konvertierung