Arch Linux将deb包转为pkg包

ArchLinux将deb包转为pkg包

有时候有些linux软件没有pkg包,想要用又不想用折腾aur,这时可以使用debtap这个命令行脚本将deb包转换为pkg包

项目地址

debtap

用于将 .deb 包转换为 Arch Linux 包的脚本,专注于准确性

问&答

  • “debtap"什么意思?
    • DEB To Arch (Linux) Package.
  • 如果我需要编译包或将 .deb 包转换为 Arch Linux 包,下载官方包或编写 PKGBUILD 不是更好吗?
    • 当然是这样,我鼓励你这样做。编写 Debtap 是为了创建无法编译(闭源包)或由于各种原因(编译期间出错或文件不可用)而无法从 AUR 构建的包
  • 那么只有在我需要将特定的 .deb 包转换为 Arch Linux 包的情况下,debtap 才会帮助我?
    • 并不是。如果你需要为 Debian/Ubuntu 发行版中已经存在的软件包编写新的 PKGBUILD,使用参数 -p 或 -P 它可以生成一个 PKGBUILD,然后根据需要进行编辑。
  • 运行此脚本的最低要求是什么?
    • 你需要安装这些依赖项:bashbinutils(提供用于提取 .deb)、pkgfilefakeroot。且必须至少运行一次debtap -u(最好是最近)来创建/更新 pkgfile 和 Debtap 数据库(使用 root 权限执行此操作)。
  • Debtap 需要很多时间来转换一个包。那么,为什么会发生这种情况?
    • 就像我说的,debtap 专注于准确性。 它不仅是解压 .deb 包,然后将其数据重新打包到 ArchLinux 包中,而忽略元数据。 根据处理器的速度和包装本身,转换可能需要几秒钟到几分钟的时间。
  • 在转换过程中,我收到几条警告消息,为什么?
    • 由于多种原因,Debtap 不能 100% 准确,主要原因是包名称的复杂性。如果你想检查新生成的 .PKGINFO 和 .INSTALL(这是可选文件)元数据文件,甚至修复 .PKGINFO 中未翻译的包名称,debtap 为你提供了在压缩最终包之前编辑这些文件的选项。

使用帮助

-h  --help        打印帮助信息
-u  --update      更新debtap数据库
-q  --quiet       跳过所有问题,编辑元数据文件除外
-Q  --Quiet       跳过所有问题(不推荐)
-s  --pseudo      从32位deb包文件创建伪64位软件包
-w  --wipeout     清除所有依赖项、冲突等的版本
-p  --pkgbuild    另外生成一个PKGBUILD文件
-P  --Pkgbuild    仅生成PKGBUILD文件
-v  --version     打印版本信息

archalinux下下载debtap之后

执行debtap -u来更新转换时需要的版本数据

然后执行debtap {target}.deb转换为pkg包