如何将DEB包转换为Arch Linux包

时间:2020-03-21 11:43:09  来源:igfitidea点击:

我们已经学习了如何为多个平台构建软件包,以及如何从源中构建软件包。

今天,我们将学习如何将Deb软件包转换为Arch Linux软件包。
我们可能想知道为什么我需要将DEB包转换为Arch Linux包,而Aur是最大的非官方软件存储库,几乎所有的软件?
真的!但是,某些软件包无法编译(例如,封闭的源包),或者无法在编译或者不可用依赖文件期间的误差时从Aur构建。
或者,开发人员懒得在AUR中建立一个包或者他/他/他不喜欢创建AUR包。
原因可能很多。
在这种情况下,我们可以使用名为debrap的shell脚本将deb包转换为Arch Linux包。
Debrap 表示 DEB To Arch (Linux) Package

在Arch Linux中安装Debtap

DebTAP可在AUR中提供,因此我们可以使用Yay等Aur Helper工具安装它。

要使用Yay安装DebTap,请运行:

$yay -S debtap

并确保Arch系统安装了Bash,Binutils,Pkgfile和Fakeoot软件包。

安装DEBLAP和所有上述依赖项后,请执行以下命令以创建/更新pkgfile和debtap数据库。

$sudo debtap -u

示例输出:

==> 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!

我们必须至少至少运行一次上面的命令。

现在,是时候包转换了。

使用DEBLAP将DED Packages转换为Arch Linux包

要将任何DEB包转换为QuadRapassel,请使用DEBLAPArch Linux包,如下所示:

$debtap quadrapassel_3.22.0-1.1_arm64.deb

上面的命令将给定的.deb文件转换为ARCH Linux包。
将要求我们输入包维护者和许可证的名称。
只需输入它们并按Enter键开始转换过程。

根据CPU速度,包转换将从几秒钟转到几分钟。
抓一杯咖啡。

示例输出:

==> 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 Jan 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...

注意:QuadRapassel包已在Arch Linux官方存储库中提供。
我用它只是为了演示目的。

如果我们在包转换期间不想回答任何问题,请使用-q标志来绕过所有问题,但编辑元数据文件除外。

$debtap -q quadrapassel_3.22.0-1.1_arm64.deb

绕过所有问题(不推荐),使用-Q标志。

$debtap -Q quadrapassel_3.22.0-1.1_arm64.deb

完成转换后,我们可以使用ARCH系统中的"PACMAN"安装新转换的包,如下所示。

$sudo pacman -U <package-name>

帮助

要显示帮助部分,请使用-h标志:

$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