将dpkg-buildpackage与现有上游源tarball一起使用的最简单方法

时间:2013-03-05 18:09:10

标签: debian packaging deb

已经阅读了数百篇教程,仍然无法理解这一篇:

  • 我有一个上游提供的上游包,名为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&&制造&& sudo make install
  • 我希望我的包名为“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. 我需要将上游tarball放在与dh_make创建的debian /文件夹相关的位置,以便dpkg-buildpackage调用./configure并正确生成?

1 个答案:

答案 0 :(得分:0)

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

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

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