GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So konvertieren Sie Linux-Pakete mit Alien

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.


Linux
  1. Linux-Paketverwaltung mit apt

  2. Wie man RPM-Pakete baut

  3. So entfernen Sie verwaiste Pakete unter CentOS Linux

  4. So verwenden Sie den XBPS-Paket-Manager unter Void Linux

  5. So erstellen Sie ein Linux-RPM-Paket

So listen Sie installierte Pakete in Linux auf

So sichern Sie Linux-Server mit SE Linux

So konvertieren Sie eine Webseite unter Linux in PDF

So führen Sie ein Downgrade von Paketen auf einem Linux-System durch:Der ultimative Leitfaden

So listen Sie installierte Pakete in Linux mithilfe der Paketverwaltung auf

So führen Sie .run- und .bin-Pakete im Linux-System aus