Die Entwickler und Paketbetreuer erstellen möglicherweise nicht immer Pakete für alle Linux-Distributionen. Einige Pakete sind möglicherweise nur für eine bestimmte Linux-Plattform verfügbar. In solchen Fällen können Sie Paketkonvertierungstools wie Alien verwenden zum einfachen Konvertieren von Linux-Paketen in verschiedene Formate. In diesem Handbuch werden wir sehen, was Alien ist, wie man Alien in verschiedenen Linux-Betriebssystemen installiert und wie man dann ein Linux-Paket mit dem Alien-Paketkonverter von einem Format in ein anderes konvertiert.
Was ist Alien?
Alien ist ein Befehlszeilen-Paketkonverter, der zwischen verschiedenen Linux-Paketformaten wie Red Hat rpm, Debian deb, Stampede slp, Slackware tgz und Solaris pkg usw. konvertiert.
Alien unterstützt derzeit die folgenden Paketformate:
- Linux-Standardbasis (LSB),
- LSB-konforme
.rpm
Pakete, .deb
,- Stampede (
.slp
), - Solaris (
.pkg
) - Slackware (
.tgz
,.txz
,.tbz
, .tlz
).
Die fremden Programme kommen zur Rettung, wenn ein bestimmtes Paket oder eine bestimmte Version eines Pakets für Ihre Linux-Distribution nicht verfügbar ist. Sie können ein solches Paket einfach mit Alien in Ihr bevorzugtes Paketformat konvertieren und auf Ihrem System installieren.
Alien ist nicht nur ein Paketkonverter, es kann die generierten Pakete auch automatisch nach der Paketkonvertierung installieren. Es kann sogar die Option haben, die Skripte zu konvertieren, die ausgeführt werden sollen, wenn das Paket installiert wird. Sie müssen vorsichtig sein, wenn Sie diese Option verwenden. Sie sollten die Skripte sorgfältig untersuchen und überprüfen, was diese Skripte tun, bevor Sie diese Option verwenden.
Vorsicht: Alien sollte nicht verwendet werden, um wichtige Systempakete wie init zu konvertieren , libc , die für das Funktionieren Ihres Linux-Systems notwendig sind. Die Systempakete, die speziell für eine bestimmte Linux-Distribution entwickelt wurden, können nicht austauschbar verwendet werden und können Ihr System beschädigen, wenn Sie versuchen, sie gewaltsam zu installieren.
Installieren Sie Alien unter Linux
Der Alien-Paketkonverter ist in den Standard-Repositories gängiger Linux-Distributionen verfügbar.
Um Alien unter Alpine Linux zu installieren, führen Sie Folgendes aus:
$ sudo apk add alien
Installieren Sie Alien in Debian, Ubuntu LTS, Linux Mint, Pop!_OS:
$ sudo apt install alien
Alien in Fedora installieren:
$ sudo dnf install alien
Installieren Sie Alien unter CentOS 8, RHEL 8, AlmaLinux 8, Rocky Linux 8:
$ sudo dnf install epel-release
$ sudo dnf install alien
Linux-Pakete mit Alien konvertieren
Die allgemeine Syntax zum Konvertieren von Linux-Paketen mit Alien von einem Format in ein anderes lautet:
alien [--to-deb] [--to-rpm] [--to-tgz] [--to-slp] [options] file [...]
Das Konvertieren von Paketen mit Alien ist sehr einfach!
Zum Konvertieren einer .rpm
Paket in eine .deb
Paket, führen Sie alien einfach als root
aus oder sudo
Benutzer:
$ sudo alien --to-deb /path/to/file.rpm
Ebenso zum Konvertieren von .deb
Datei in .rpm
, ausführen:
$ sudo alien --to-rpm /path/to/file.deb
Hier ist die Liste der unterstützten Flags zum Konvertieren von Linux-Paketen in verschiedene Formate.
-d
,--to-deb
- Debian-Pakete erstellen. Dies ist die Voreinstellung.-r
,--to-rpm
- RPM-Pakete erstellen.-l
,--to-lsb
- Erstellen Sie ein LSB-Paket.-t
,--to-tgz
- Tgz-Pakete erstellen.--to-slp
- Erstellen Sie slp-Pakete.-p
,--to-pkg
- Solaris pkg-Pakete erstellen.
Sehen wir uns einige Beispiele an. Für diesen Leitfaden verwende ich hello world .rpm
Paket. Bitte beachten Sie, dass hello
Paket ist für fast alle Linux-Distributionen gepackt. Sie müssen es also nicht umwandeln. Ich benutze es nur zu Demonstrationszwecken.
Konvertieren Sie RPM-Pakete mit Alien in DEB-Pakete
Konvertieren wir nun das Hello-RPM-Paket in .deb
Format mit Alien wie unten:
$ sudo alien --to-deb hello-2.10-5.fc34.x86_64.rpm
Oder kurz,
$ sudo alien -d hello-2.10-5.fc34.x86_64.rpm
Dadurch wird die angegebene .rpm
konvertiert Paket in .deb
Paket und speichern Sie das generierte Paket im aktuellen Verzeichnis.
Vorsicht: Wenn kein Flag angegeben ist, konvertiert Alien die Pakete in .deb
standardmäßig formatieren.
Sie können das generierte Paket mit dem Standardpaketmanager installieren.
Wir können auch mehrere Pakete gleichzeitig konvertieren. Der folgende Befehl konvertiert die angegebenen Pakete (hello &vim) in .deb
formatieren.
$ sudo alien hello-2.10-7.x86_64.rpm vim-enhanced-8.2.2637-1.fc34.x86_64.rpm
Konvertieren Sie DEB-Pakete mit Alien in RPM-Pakete
Ebenso können wir die .deb
konvertieren Paket in .rpm
Paketdatei wie unten:
$ sudo alien --to-rpm hello-2.10-5.fc34.x86_64.rpm
Oder kurz,
$ sudo alien -r hello-2.10-5.fc34.x86_64.rpm
Pakete automatisch installieren
Manchmal möchten Sie die generierten Pakete möglicherweise automatisch installieren.
Um ein Paket zu konvertieren und automatisch mit Alien zu installieren, verwenden Sie -i
Flagge.
$ sudo alien -d -i hello-2.10-7.x86_64.rpm
Dieser Befehl konvertiert das angegebene .rpm-Paket in das .deb-Paketformat und installiert es dann und entfernt schließlich das generierte Paket.
Beispielausgabe:
dpkg --no-force-overwrite -i hello_2.10-8_amd64.deb Selecting previously unselected package hello. (Reading database ... 52712 files and directories currently installed.) Preparing to unpack hello_2.10-8_amd64.deb ... Unpacking hello (2.10-8) ... Setting up hello (2.10-8) ... Processing triggers for man-db (2.9.4-2) ...
In mehrere Paketformate konvertieren
Alien kann mehrere Paketdateiformate aus einer einzigen Paketdatei erstellen. Das folgende Beispiel zeigt, wie .deb
erstellt wird , und .tgz
Pakete aus einer .rpm
Datei.
$ sudo alien --to-deb --to-tgz hello-2.10-7.x86_64.rpm
Versionsnummern beibehalten
Standardmäßig fügt Alien der Nebenversionsnummer jedes konvertierten Pakets eins hinzu. Wenn die Versionsnummer beispielsweise 1.2-3 ist, fügt Alien eine zur Nebenversion hinzu und ändert sie in 1.2-4.
Sehen Sie sich die folgende Befehlsausgabe an.
$ sudo alien --to-deb hello-2.10-7.x86_64.rpm hello_2.10-8_amd64.deb generated
Die Version des Quellpakets im obigen Befehl ist 2.10.7. Nach der Paketkonvertierung hat Alien die Nebenversion in der Zieldatei von 7 auf 8 geändert.
Wenn Sie nicht möchten, dass Alien die Versionsnummer ändert, verwenden Sie -k
, --keep-version
Flag, um die ursprüngliche Versionsnummer im generierten Paket beizubehalten.
$ sudo alien -k --to-deb hello-2.10-7.x86_64.rpm hello_2.10-7_amd64.deb generated
Wie Sie oben sehen, haben die Quelldatei und die Zieldatei dieselbe Versionsnummer.
Hilfe bekommen
Um eine kurze Beschreibung von Alien und aller unterstützten allgemeinen Optionen anzuzeigen, lesen Sie den Alien-Hilfeabschnitt, indem Sie den folgenden Befehl ausführen:
$ alien --help
Siehe auch die Handbuchseite.
$ man alien
Schlussfolgerung
Ich gebe keine Gewähr für die Genauigkeit des Alien-Konverters. Ich habe nur wenige Pakete wie Vim, Hello World und Nano getestet. Soweit ich getestet habe, funktioniert Alien für mich in Debian 11 Bullseye einwandfrei.
Es funktioniert wahrscheinlich nicht für einige Pakete, die von einer großen Anzahl von Abhängigkeiten abhängen. Das Ergebnis kann von Paket zu Paket variieren.
In solchen Fällen müssen Sie sie möglicherweise manuell aus dem Quellcode erstellen oder andere zuverlässige Anwendungen wie CheckInstall verwenden oder Fpm . Ich schlage vor, dass Sie sich die folgenden Ressourcen ansehen, um zu erfahren, wie Sie Pakete aus dem Quellcode erstellen.
- Wie man Debian-Pakete aus den Quellen erstellt
- Wie man mit CheckInstall Pakete aus der Quelle erstellt
- So erstellen Sie ganz einfach Linux-Pakete für mehrere Plattformen
- Neuerstellen von Debian-Binärpaketen, die bereits auf einem System installiert sind
- So konvertieren Sie DEB-Pakete in Arch-Linux-Pakete
Hoffe das hilft.