2

我是一个新手,试图按照这个 Ubuntu 指南构建一个 deb 以放入 PPA,但是我在使用规则文件时遇到了麻烦,我在其中查阅了这个概述Debian 政策手册。我收集到,在许多情况下,可以将规则文件以非常短的形式保留原样,但这对我不起作用,可能是因为在上游包上运行 make 之前需要一些技巧。

手动构建和安装上游的构建过程是:

  1. cd packagedir/src
  2. cp makefile.unix makefile.my
  3. 在 makefile.my 上运行三个 sed 行
  4. make -f makefile.my
  5. sudo cp -f 二进制文件 /usr/local/bin/

我已经设法将规则文件(添加目标)调整为似乎成功执行步骤 1-4 的内容,但是当通过bzr builddeb -- -us -uc命令完成编译时,我遇到了一个错误,上面写着“dpkg-genchanges: error: cannot读取文件列表文件:没有这样的文件或目录”,这让我怀疑我是否真的做了很多不必要的工作。毕竟,构建和安装过程并不是很复杂。

所以我的问题是:我可以恢复规则文件,并在构建过程中轻松实施上述五个步骤,还是我需要继续我所走的道路,手动编辑规则文件?在这两种情况下,我都需要有关如何继续的指导:)

4

1 回答 1

1

是的,您可以还原规则文件并在 dh 框架内轻松实现这些步骤(而不是逐字添加这些步骤)。

它可能看起来像

#!/usr/bin/make -f

%:
        dh $@

override_dh_auto_configure:
        sed -e "$my_sed_program" makefile.unix > makefile.my

override_dh_auto_build:
        make -f makefile.my

然后在debian/$packagename.install

binaryfile    /usr/bin

这可能无法完全按原样工作;这取决于您的构建过程如何工作的细节,但也许这会让您更接近。

附注:不要安装binaryfile/usr/local/bin中,除非你真的必须这样做;包应该不理会/usr/local,让本地系统管理员选择放在那里的东西。操作系统知道如何跟踪包拥有的文件以及它们在哪里以及它们是否与其他文件冲突,因此将其放入应该没有任何缺点/usr/bin

于 2014-07-18T20:28:58.860 回答