VMware ESXi and vSphere Cluster Management
Pakete mit alien zwischen DEB, RPM, TGZ und weiteren Formaten konvertieren
Lerne, wie du mit alien DEB-, RPM-, TGZ-, SLP- und Solaris-PKG-Pakete konvertierst, installierst und typische Abhängigkeits- und Architekturprobleme löst.
alien ist ein Kommandozeilenwerkzeug zur Umwandlung von Softwarepaketen zwischen mehreren Linux- und Unix-Paketformaten. Es ist nützlich, wenn ein benötigtes Programm nur als Paket für eine andere Distribution verfügbar ist.
Ein typisches Beispiel ist ein RPM-Paket, das auf einem Debian- oder Ubuntu-System verwendet werden soll. alien kann daraus ein DEB-Paket erzeugen, das anschließend mit den Debian-Werkzeugen installiert wird.
Grundbegriffe: Paketformat und Paketmanager
Ein Paketformat beschreibt, wie installierbare Software zusammen mit Metadaten, Dateien und gegebenenfalls Abhängigkeitsinformationen gespeichert wird. Ein Paketmanager installiert, aktualisiert und entfernt solche Pakete und versucht, benötigte Abhängigkeiten zu verwalten.
- DEB: Paketformat der Debian-Familie, beispielsweise für Debian und Ubuntu.
- RPM: Paketformat vieler RPM-basierter Distributionen, beispielsweise Fedora, RHEL, Rocky Linux, AlmaLinux und openSUSE.
- TGZ: Ein komprimiertes Tar-Archiv, das auch als einfaches Paket- oder Archivformat verwendet werden kann.
- SLP: Das Paketformat von Stampede Linux.
- Solaris PKG: Paketformat für Solaris-Systeme.
Voraussetzungen für alien
Vor der Konvertierung muss alien auf dem System installiert sein. Außerdem benötigt alien die Werkzeuge, die zu den Quell- und Zielformaten gehören. Bei einer RPM-zu-DEB-Konvertierung müssen beispielsweise sowohl RPM-Werkzeuge als auch Debian-Paketwerkzeuge vorhanden sein.
Installiere alien und fehlende Werkzeuge über den nativen Paketmanager deiner Distribution. Für administrative Installationen und viele Schritte der Problembehebung sind Root-Rechte oder sudo erforderlich.
Prüfe außerdem vorab:
- Ist die Eingabedatei tatsächlich ein unterstütztes Paket?
- Passt die CPU-Architektur zur Zielumgebung?
- Sind die benötigten Bibliotheken und ihre Versionen auf der Zielplattform verfügbar?
- Stammt das Paket aus einer vertrauenswürdigen Quelle?
Grundsyntax von alien
Die allgemeine Befehlsform lautet:
alien [Optionen] DATEI
Die Optionen bestimmen das gewünschte Zielformat. Ohne eine explizite Zielformatoption erzeugt alien standardmäßig ein Debian-Paket.
alien nmap.rpm
Bei diesem Aufruf wird aus nmap.rpm standardmäßig eine DEB-Datei erstellt. Der genaue Name der Ausgabedatei hängt unter anderem von Paketname, Version und Architektur ab.
Unterstützte Zielformate und Optionen
| Option | Zielformat | Dateiendung | Typischer Verwendungszweck |
|---|---|---|---|
-d | Debian-Paket | .deb | Ein fremdes Paket für Debian oder Ubuntu vorbereiten |
-r | RPM-Paket | .rpm | Ein DEB-Paket für eine RPM-basierte Distribution umwandeln |
-t | TGZ-Archiv | .tgz beziehungsweise .tar.gz | Paketinhalt als Tarball bereitstellen |
--to-slp | Stampede-Paket | .slp | Ein Paket in das SLP-Format umwandeln |
-p oder --to-pkg | Solaris-PKG-Paket | .pkg | Ein Paket für Solaris bereitstellen, sofern diese Option in der installierten alien-Version verfügbar ist |
Das Eingabeformat wird normalerweise anhand des Paketaufbaus und der Dateiendung erkannt. Eine Endung allein beweist jedoch nicht, dass die Datei ein gültiges Paket enthält.
Beispiel: RPM in DEB konvertieren
Angenommen, im aktuellen Verzeichnis liegt ein Paket namens nmap.rpm. Mit der Option -d wird das Debian-Zielformat ausdrücklich ausgewählt:
alien -d nmap.rpm
Nach erfolgreicher Ausführung liegt im Arbeitsverzeichnis eine neue DEB-Datei. Ihr vollständiger Name kann beispielsweise eine Version und Architektur enthalten und muss nicht exakt einem festen Muster folgen.
Das erzeugte Paket wird anschließend mit dpkg installiert:
sudo dpkg -i nmap_*.deb
dpkg ist das niedrigstufige Debian-Werkzeug zum Installieren und Verwalten von DEB-Paketen. Es installiert die angegebene Datei, löst fehlende Abhängigkeiten aber nicht vollständig selbstständig aus.
Beispiel: DEB in RPM konvertieren
Für die umgekehrte Richtung liegt beispielsweise beispiel.deb vor. Die Option -r wählt RPM als Zielformat:
alien -r beispiel.deb
Die erzeugte RPM-Datei kann anschließend mit dem RPM-Werkzeug installiert werden:
sudo rpm -i beispiel-*.rpm
Vor der Installation sollten Paketname, Version, Architektur und Abhängigkeiten geprüft werden. Auch ein technisch gültiges RPM-Paket kann auf der Zieldistribution nicht lauffähig sein.
Weitere Konvertierungen
DEB oder RPM in ein TGZ-Archiv
Mit -t wird ein TGZ-Archiv als Zielformat gewählt:
alien -t beispiel.deb
TGZ ist dabei ein Archivformat und nicht automatisch ein vollständig in die Paketverwaltung der Zieldistribution integriertes Paket. Die enthaltenen Dateien müssen deshalb besonders sorgfältig geprüft werden.
Konvertierung in SLP
Für das Stampede-Linux-Format wird --to-slp verwendet:
alien --to-slp beispiel.deb
SLP ist ein historisches beziehungsweise selten verwendetes Format. Die tatsächliche Nutzbarkeit hängt von der installierten alien-Version und den vorhandenen Hilfsprogrammen ab.
Konvertierung in Solaris PKG
Für ein Solaris-PKG-Paket kann --to-pkg verwendet werden:
alien --to-pkg beispiel.deb
Die Kurzform ist -p. Diese Option ist nur sinnvoll, wenn die entsprechende Unterstützung in der installierten alien-Version verfügbar ist:
alien -p beispiel.deb
Installation nach der Konvertierung
| Erzeugtes Format | Installationswerkzeug | Beispielbefehl | Hinweis |
|---|---|---|---|
| DEB | dpkg | sudo dpkg -i paket.deb | Fehlende Abhängigkeiten müssen anschließend gegebenenfalls separat aus den nativen Paketquellen installiert werden. |
| RPM | rpm | sudo rpm -i paket.rpm | Das Paket muss zur RPM-basierten Distribution, Architektur und Bibliotheksumgebung passen. |
Verwende nach Möglichkeit den Paketmanager der Zieldistribution, wenn er eine native Version des Programms anbietet. Native Pakete enthalten meist passendere Abhängigkeiten und Integrationsinformationen als konvertierte Fremdpakete.
Abhängigkeiten und Kompatibilität
Abhängigkeiten sind weitere Pakete, Bibliotheken oder bestimmte Versionen, die eine Software benötigt. alien kann Paketmetadaten umformen, aber nicht zuverlässig sicherstellen, dass die Abhängigkeiten des Ursprungspakets auf der Zielplattform denselben Namen, dieselbe Version oder dieselbe ABI besitzen.
Besonders relevant sind:
- Bibliotheksversionen: Ein Programm kann eine ältere oder neuere Version einer Systembibliothek erwarten.
- Paketnamen: Dieselbe Bibliothek kann in verschiedenen Distributionen unterschiedlich paketiert oder benannt sein.
- Dateipfade: Konfigurationsdateien und Systemdateien können an unterschiedlichen Stellen liegen.
- Dienste und Integration: Startskripte, Benutzer, Gruppen und Systemdienste sind nicht immer zwischen Distributionen kompatibel.
- Architektur: Ein Paket für eine andere CPU-Architektur lässt sich nicht durch Formatkonvertierung passend machen.
Sichere und sinnvolle Nutzung
- Suche zuerst nach einem nativen Paket in den offiziellen Paketquellen der Zieldistribution.
- Wenn kein natives Paket existiert, prüfe die Herkunft und Vertrauenswürdigkeit der Datei.
- Überprüfe, wenn verfügbar, Prüfsummen und Signaturen.
- Konvertiere vorzugsweise einzelne Pakete und nicht große Teile eines Systems.
- Teste kritischere Software zunächst in einer virtuellen Maschine oder einer anderen isolierten Testumgebung.
- Beobachte nach der Installation Fehlermeldungen, Dienste und Protokolle.
alien ist kein Ersatz für ein distributionsübergreifendes Upgrade. Es eignet sich vor allem für einzelne Pakete, wenn eine native Alternative nicht verfügbar ist und die Kompatibilität kontrolliert werden kann.
Fehlerbehebung
alien oder ein Paketwerkzeug fehlt
Wenn der Befehl nicht gefunden wird oder die Konvertierung über fehlende Programme klagt, ist alien oder ein Werkzeug für das Quell- beziehungsweise Zielformat nicht installiert. Installiere die benötigten Komponenten über den nativen Paketmanager der verwendeten Distribution.
Das Eingabeformat wird nicht erkannt
Die Datei kann beschädigt sein, eine irreführende Dateiendung tragen oder überhaupt kein unterstütztes Paket sein. Lade sie erneut aus einer vertrauenswürdigen Quelle herunter und prüfe Prüfsumme oder Signatur. Verlasse dich nicht ausschließlich auf die Endung .rpm, .deb oder .tgz.
DEB-Installation meldet fehlende Abhängigkeiten
Das Ursprungspaket verweist möglicherweise auf Abhängigkeiten, die in der Debian-basierten Zielumgebung nicht vorhanden sind oder anders heißen. Installiere benötigte Komponenten aus den Paketquellen der Zieldistribution oder suche nach einem nativen Paket beziehungsweise dem Quellcode des Programms.
Das Paket installiert sich, startet aber nicht
Mögliche Ursachen sind unpassende Bibliotheksversionen, andere Dateipfade, fehlende Dienste, falsche Architektur oder distributionsspezifische Integrationsdetails. Prüfe die konkrete Fehlermeldung und Systemprotokolle. Wenn die Anpassung unverhältnismäßig aufwendig wird, entferne das konvertierte Paket und verwende bevorzugt eine Version für die Zieldistribution.
Architekturkonflikt
Ein Paket für eine andere CPU-Architektur kann nicht durch alien repariert werden. Beschaffe eine Paketdatei für die passende Architektur. Eine Formatkonvertierung ändert die Paketstruktur, aber nicht den kompilierten Maschinencode.
Kurzüberblick
- Die Grundsyntax lautet
alien [Optionen] DATEI. - Ohne Zielformatoption erzeugt alien standardmäßig ein DEB-Paket.
-derzeugt DEB,-rRPM und-tTGZ.--to-slperzeugt SLP;-pbeziehungsweise--to-pkgerzeugt Solaris PKG, sofern unterstützt.- DEB-Dateien werden beispielsweise mit
dpkg, RPM-Dateien mitrpminstalliert. - Formatkonvertierung garantiert weder passende Abhängigkeiten noch funktionierende Software.
- Native Pakete und offizielle Quellen sind konvertierten Fremdpaketen grundsätzlich vorzuziehen.