Home / LinuxUser / 2010 / 01 / Programmpakete richtig konvertieren

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

AA_gestaltwandler_123rf-5516461_ddraw.jpg

© ddraw, 123rf.com

Gestaltwandler

Programmpakete richtig konvertieren

16.12.2009 Wenn sich eine aktuelle Software nur im Repository einer anderen Distribution findet, hilft Alien, das Paket sauber ins eigene System einzupassen.

Endlich beherrscht die neueste Version einer Software das gewünschte Feature – doch das Paket findet sich nur im Repository eines anderen Systems. Der Grund dafür liegt nicht selten in der Tatsache, dass sich der Maintainer der Software nur mit einem speziellen System gut auskennt und nur dafür ein Paket baut. Ansonsten überlässt er den Distributoren das Bereitstellen des Paketes. Möchten Sie nicht solange warten, nehmen Sie Alien [1] zur Hand.

Im Kern vieler Linux-Systeme sorgt ein Paketmanagement für Softwarekonsistenz (siehe Kasten "Pakete im Griff"). Debian und Ubuntu verwenden Dpkg [2]; das Suffix .deb kennzeichnet diese Programmpakete. Red Hat, Fedora, (Open-)Suse, Mandriva und andere Distributionen nutzen das RPM-Format [3], dessen Programmpakete analog auf .rpm enden.

Pakete im Griff

Die Existenz unterschiedlicher, nicht ganz kompatibler Paketmanagementsysteme [7] liegt in der Linux-Historie begründet. Grundsätzlich sprechen aber gute Gründe für ein Paketmanagement. Zum einen vereinfacht es die Installation eines Programms, wobei es meist auch die Abhängigkeiten (andere Programme oder Bibliotheken) berücksichtigt. Zum anderen fallen auch Aktualisierungen und das Entfernen nicht mehr benötigter Software leichter. Darüber hinaus bietet ein Paketmanagementsystem die Möglichkeit, temporär Platz auf der Festplatte zu schaffen. Außerdem hilft es beim Analysieren von Fehlern: Behebt das Entfernen eines Programms das Problem? Falls nicht, dann kann man die Software beruhigt wieder installieren.

Der Parallelbetrieb mehrerer Paketverwaltungen auf einem System mündet in einem völligen Chaos, da unklar wäre, mit welcher davon Sie ein Programm installiert haben und ob das System nicht bereits die notwendigen Abhängigkeiten erfüllt. Versuchen Sie, ein RPM-Paket auf einem Debian-System zu installieren, erhalten Sie eine Meldung wie in Listing 1.

# rpm -i testprog-9.9.8-1.x86_64.rpm
rpm: please use alien to install rpm packages on Debian, if you are really sure use --force-debian switch. See README.Debian for more details.

Hier kommt das Werkzeug Alien (engl: "fremd, Fremdling, Ausländer") ins Spiel. Es ermöglicht, Pakete aus dem einen in das jeweils andere System zu integrieren, indem es sie ins native Paketformat umwandelt. Zwar gilt Alien als experimentelle Software, doch setzen viele Nutzer das Programm schon länger erfolgreich ein.

Alien im Detail

Alien gibt es für die meisten Linux-Distributionen, es kommt vielfach aber nur auf Debian- oder Ubuntu-Systemen zum Einsatz. Sein Haupteinsatzgebiet liegt darin, ein Paketformat in ein anderes zu konvertieren. Das eigentliche Umwandeln verläuft vergleichsweise trivial (siehe Kasten "Unter der Haube")

Hinter einem DEB-Paket verbirgt sich eigentlich ein Ar-Archiv [4], das sich aus der Beschreibung und Informationen über die Abhängigkeiten, verschiedenen Skripten sowie den eigentlichen Programmdateien zusammensetzt. Ähnlich verhält es sich mit RPM. Noch simpler ist das im Unix-Umfeld am weitesten verbreitete Tar-Format.

Weil es sich um freie und gut dokumentierte Format handelt, stehen die Chancen für das erfolgreiche Konvertieren gut. Beim Umwandeln sollten nach Möglichkeit folgende Bestandteile erhalten bleiben:

  • die Paketbeschreibungen, so dass Sie später im Paketmanagement erkennen, um was für eine Software es sich handelt, wer der Autor ist oder wo Sie die Homepage finden,
  • die Informationsdateien, die beschreiben, wie Sie das Paket wieder entfernen oder aktualisieren – und was dabei gegebenenfalls zu tun wäre,
  • die Informationen über Abhängigkeiten zu anderer Software,
  • die Angabe der Prozessorarchitektur im Dateinamen, wie etwa amd64 bei DEB-Paketen und x86_64 bei RPMs.

Es empfiehlt sich, die Alien-Version der eigenen Distribution zum Import von Fremdformaten einzusetzen. Sie ist stets am besten angepasst, um weitere Software optimal in das eigene System zu integrieren und dabei dessen Eigenheiten zu berücksichtigen.

Unter der Haube

Da Alien in Perl geschrieben wurde, steht einem Blick in die Interna nichts im Wege. Sie können also jederzeit nachsehen, was es tut und wie es das anstellt. Weitere Informationen zu Alien finden Sie im Buch "Das Debian-System" von Martin F. Krafft [8] oder in Heike Jurziks Beitrag "Pakete umwandeln mit Alien" [9].

Schlichte Eleganz

Ein kleines Beispiel soll die Funktionsweise von Alien verdeutlichen: Von der Software testprog existiert nur ein RPM-Paket. Das passt nicht zu einem einem Debian-basiertes System. Der Aufruf alien testprog-9.9.8-1.x86_64.rpm konvertiert das RPM-Paket nach testprog_9.9.8-2_amd64.deb – ganz ohne weitere Optionen.

Das Quellformat ließ sich aufgrund der Endung .rpm eindeutig bestimmen, und als Zielformat verwendet Alien, wenn nicht anders angegeben, ein DEB-Paket (System des Hosts, auf dem die Software läuft). Das umgewandelte Paket installieren Sie danach wie üblich mit dpkg -i testprog_9.9.8-2_amd64.deb. Das Listing 2 zeigt den kompletten Ablauf. Beachten Sie, das Alien die Unterversionsnummern automatisch um eins hochzählt. Das Verhalten passen Sie mit der Option -k, oder --bump=Nummer an Ihre Bedürfnisse an.

$ cd /tmp
$ wget http://example.com/testprog-9.9.8-1.x86_64.rpm
$ su                                 # Root werden
# alien testprog-9.9.8-1.x86_64.rpm  # Paket umwandeln
# dpkg -i testprog_9.9.8-2_amd64.de  # Paket installieren
# exit                               # User wechseln
$ ./testprog                         # Prüfen, ob es läuft.
$ su                                 # Root werden
# mkdir /usr/src/testprog            # Verzeichnis erstellen
# mv testprog* $_                    # Daten verschieben
# exit                               # User wechseln
Tip a friend    Druckansicht Bookmark and Share
Kommentare

2545 Hits
Wertung: 72 Punkte (5 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...