从 .deb 创建 PKGBUILD

Man*_*726 11 packaging arch-linux deb

我有一个.debdebian 包,它本质上包含软件的二进制文件作为/usr/share/bin压缩data文件中的文件夹,以及另一个包含其他文件校验和的元数据压缩文件。

我的目标是创建一个PKGBUILD在 archlinux 上正确安装这样的 .deb 包。

这样做的正确方法是什么?

使用该函数将该/usr/share/bin目录的内容复制到pkg /usr/share/binfakeroot 环境中就足够了build()吗?/usr/share/bin实际安装构建的包时,文件夹会被复制到真实位置吗?

anl*_*lar 11

是的,它的工作方式与其他具有二进制源的 PKGBUILD 相同 - 提取它并复制文件。唯一应该提到的是 deb-archive 包含 3 个其他文件 - debian-binary, control.tar.gz, data.tar.gz. makepkg 将仅提取一级存档,然后您应该手动提取data.tar.gz.

prepare() {
    tar -zxvf data.tar.gz
    #tar -xvf data.tar.xz    # if archives are .tar.xz instead of .tar.gz
}

package() {
    # copy files
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以将 deb-archive 放在 noextract 数组中,然后仅手动提取data.tar.gz

$ ar p source.deb data.tar.gz | tar zx
Run Code Online (Sandbox Code Playgroud)