Wir haben bereits gelernt, wie man Pakete für mehrere Plattformen erstellt , und wie man Pakete aus der Quelle erstellt . Heute werden wir lernen, wie man DEB-Pakete in Arch-Linux-Pakete konvertiert.
Sie fragen sich vielleicht, warum ich ein DEB-Paket in ein Arch-Linux-Paket konvertieren muss, während AUR , das größte inoffizielle Software-Repository, enthält fast die gesamte Software?
Wahr! Einige Pakete können jedoch nicht kompiliert werden (z. B. Closed-Source-Pakete) oder können aus verschiedenen Gründen wie Fehler während des Kompilierens oder nicht verfügbare Abhängigkeitsdateien nicht aus AUR erstellt werden.
Oder der Entwickler der Entwickler hat keine Zeit, ein Paket in AUR zu bauen, oder er/sie mag es nicht, ein AUR-Paket zu erstellen. Die Gründe können vielfältig sein.
In solchen Fällen können Sie ein Shell-Skript namens Debtap verwenden um DEB-Pakete in Arch-Linux-Pakete zu konvertieren. Für diejenigen, die sich fragen, Debtap steht für DEB T o A rch (Linux) P Paket.
Installieren Sie Debtap in Arch Linux
Debtap ist in AUR verfügbar , sodass Sie es mit den AUR-Hilfstools wie Paru installieren können oder Juhu .
Um Debtap mit Paru zu installieren, führen Sie Folgendes aus:
$ paru -S debtap
Verwendung von Yay:
$ yay -S debtap
Und stellen Sie sicher, dass Ihr Arch-System bash haben sollte binutils , Paketdatei und Fakeroot Pakete installiert.
Führen Sie nach der Installation von Debtap und allen oben genannten Abhängigkeiten den folgenden Befehl aus, um pkgfile und die Debtap-Datenbank zu erstellen/aktualisieren.
$ sudo debtap -u
Beispielausgabe:
==> Synchronizing pkgfile database... :: Updating 6 repos... download complete: archlinuxfr [ 151.7 KiB 67.5K/s 5 remaining] download complete: multilib [ 319.5 KiB 36.2K/s 4 remaining] download complete: core [ 707.7 KiB 49.5K/s 3 remaining] download complete: testing [ 1716.3 KiB 58.2K/s 2 remaining] download complete: extra [ 7.4 MiB 109K/s 1 remaining] download complete: community [ 16.9 MiB 131K/s 0 remaining] :: download complete in 131.47s < 27.1 MiB 211K/s 6 files > :: waiting for 1 process to finish repacking repos... ==> Synchronizing debtap database... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 34.1M 100 34.1M 0 0 206k 0 0:02:49 0:02:49 --:--:-- 180k % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 814k 100 814k 0 0 101k 0 0:00:08 0:00:08 --:--:-- 113k % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 120k 100 120k 0 0 61575 0 0:00:02 0:00:02 --:--:-- 52381 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 35.4M 100 35.4M 0 0 175k 0 0:03:27 0:03:27 --:--:-- 257k ==> Downloading latest virtual packages list... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 149 0 149 0 0 49 0 --:--:-- 0:00:03 --:--:-- 44 100 11890 0 11890 0 0 2378 0 --:--:-- 0:00:05 --:--:-- 8456 ==> Downloading latest AUR packages list... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 264k 0 264k 0 0 30128 0 --:--:-- 0:00:09 --:--:-- 74410 ==> Generating base group packages list... ==> All steps successfully completed!
Sie müssen den obigen Befehl mindestens einmal ausführen.
Jetzt ist es Zeit für die Paketkonvertierung.
Konvertiere DEB-Pakete in Arch-Linux-Pakete mit Debtap
Um ein beliebiges DEB-Paket zu konvertieren, sagen Sie Quadrapassel , um das Arch-Linux-Paket mithilfe von Debtap zu erstellen, tun Sie Folgendes:
$ debtap quadrapassel_3.22.0-1.1_arm64.deb
Der obige Befehl konvertiert die angegebene .deb-Datei in ein Arch-Linux-Paket. Sie werden aufgefordert, den Namen des Paketbetreuers und die Lizenz einzugeben. Geben Sie sie einfach ein und drücken Sie die EINGABETASTE, um den Konvertierungsprozess zu starten.
Die Paketkonvertierung dauert je nach CPU-Geschwindigkeit einige Sekunden bis mehrere Minuten. Holen Sie sich eine Tasse Kaffee.
Beispielausgabe:
==> Extracting package data... ==> Fixing possible directories structure differencies... ==> Generating .PKGINFO file... :: Enter Packager name: quadrapassel :: Enter package license (you can enter multiple licenses comma separated): GPL *** Creation of .PKGINFO file in progress. It may take a few minutes, please wait... Warning: These dependencies (depend = fields) could not be translated into Arch Linux packages names: gsettings-backend ==> Checking and generating .INSTALL file (if necessary)... :: If you want to edit .PKGINFO and .INSTALL files (in this order), press (1) For vi (2) For nano (3) For default editor (4) For a custom editor or any other key to continue: ==> Generating .MTREE file... ==> Creating final package... ==> Package successfully created! ==> Removing leftover files...
Hinweis: Das Quadrapassel-Paket ist bereits in den offiziellen Repositories von Arch Linux verfügbar. Ich habe es nur zu Demonstrationszwecken verwendet.
Wenn Sie während der Paketkonvertierung keine Fragen beantworten möchten, verwenden Sie -q
Flag, um alle Fragen zu umgehen, außer zum Bearbeiten von Metadatendateien.
$ debtap -q quadrapassel_3.22.0-1.1_arm64.deb
Um alle Fragen zu umgehen (jedoch nicht empfohlen), verwenden Sie -Q
Flagge.
$ debtap -Q quadrapassel_3.22.0-1.1_arm64.deb
Sobald die Konvertierung abgeschlossen ist, können Sie das neu konvertierte Paket mit "pacman" installieren in Ihrem Arch-System, wie unten gezeigt.
$ sudo pacman -U <package-name>
Hilfe erhalten
Um den Hilfeabschnitt anzuzeigen, verwenden Sie -h
Flagge:
$ debtap -h Syntax: debtap [options] package_filename Options: -h --h -help --help Prints this help message -u --u -update --update Update debtap database -q --q -quiet --quiet Bypass all questions, except for editing metadata file(s) -Q --Q -Quiet --Quiet Bypass all questions (not recommended) -s --s -pseudo --pseudo Create a pseudo-64-bit package from a 32-bit .deb package -w --w -wipeout --wipeout Wipeout versions from all dependencies, conflicts etc. -p --p -pkgbuild --pkgbuild Additionally generate a PKGBUILD file -P --P -Pkgbuild --Pkgbuild Generate a PKGBUILD file only
Verwandte Lektüre:
- Wie man Debian-Pakete aus den Quellen erstellt
- So konvertieren Sie Linux-Pakete mit Alien