1

已经阅读了数百个教程,但我仍然无法理解这一点:

  • 我有一个上游提供的上游包,名为 foo-1.2.3.tar.bz2。
  • 我把文件放在 /tmp/debplayground/.
  • 手动安装该软件包的方法是 cd /tmp/debplayground/ && tar -xvf foo-1.2.3.tar.bz2 && cd foo-1.2.3 && ./configure --prefix=/usr && make && sudo make安装
  • 我希望我的包裹被命名为“special-foo”。
  • 我只想生成一个二进制包(.deb 文件),对源包不感兴趣。

鉴于上述前提,这是我的问题:

  1. 为了能够通过“dh_make -i --createorig”创建基本的 debian pkg 文件,我需要创建一个名为“special-foo-1.2.3”的文件夹并在其中调用 dh,对吗?但是我需要将 foo-1.2.3.tar.bz2 重命名为 special-foo-1.2.3.tar.bz2 吗?
  2. 我需要解压缩 .tar.bz2 或 dpkg-buildpackage 吗?
  3. 我需要在哪里放置与 dh_make 创建的 debian/ 文件夹相关的上游压缩包,以便 dpkg-buildpackage 正确调用 ./configure 和 make?
4

1 回答 1

0
  1. dh_make 在这方面有点傻。我不会花太多时间弄清楚如何让它快乐。您真正需要关心的是它设置的包装模板。为了回答我认为您的问题,如果您没有创建“本机”包,dpkg-buildpackage 将期望找到一个../special-foo_1.2.3.orig.tar.{gz,bz2,lzma}在构建时调用的文件,以便正确生成.diff.gz源包的一部分,这应该是识别 Debian 软件包中上游源代码的任何更改。当您告诉 dh_make 上游 tarball 是什么时,它通常会为您创建一个符号链接。

  2. 您确实需要至少解压缩原始 .tar.bz2 一次,以便将您的打包信息放在适当的位置(参见 #3)。但是之后你不需要解压它;dpkg-source(在适当时由 dpkg-buildpackage 调用)将在需要生成新差异时在 tmp 目录中自行完成。

  3. 您的debian/文件夹应该位于包源代码树的顶层。在你的情况下,它会是/tmp/debplayground/foo-1.2.3/debian.

于 2013-03-07T17:58:24.073 回答