如何使用同一个 debian 目录创建多个 debian 软件包

如何使用同一个 debian 目录创建多个 debian 软件包

我正在 PC 中打包一个应用程序,用于安装/分发。我已dpkg使用 ubuntu 12.04 中的工具成功创建了该包。现在我需要使用相同的文件设置创建多个包(二进制包(如 xxx.deb)、源包(xxx.1.0-1-devel.deb))。 Debian文件夹包含使用 打包所需的所有修改文件dpkg-buildpackage -rfakeroot。如果我需要使用相同的 debian 文件设置创建所有 .deb 文件。我还应该做什么?

此外,下面的事情也让我感到困惑。 -devel 包中应该包含什么?它是否仅有开发头文件或开发头文件和所需的共享库或包括头文件在内的所有二进制文件?

答案1

我假设你的目标程序是 c/c++ 或类似的语言。

  • 你可以将所有文件包含在一个二进制包中。但最好还是将开发文件放在另一个包中。

    *-dev(不-devel)如果这些工具仅用于开发,则应该仅包含标题,静态库,共享库甚至二进制工具。

  • 您可以在 中为单个源声明多个二进制包debian/control。最好的方法是通过示例来学习samba

    <请编辑们保持这些链接清晰,我想提一下它们> 源包:http://packages.ubuntu.com/source/focal/samba,查看有多少个二进制包是从同一源构建的。

    让我们选择一个(主包,samba-*.deb):http://packages.ubuntu.com/focal/samba,参见右侧*-debian.tar.xz。下载后打开。阅读其control文件:

      Source: samba
      ...
    
      Package: samba
      ...
    
      Package: samba-libs
      ...
    

    每个二进制包都有自己的*.install文件,其中列出了要安装的文件及其位置。例如:samba.install,,samba-libs.install..

  • 对于库,静态库仅包含在*-dev包中。

    如果您有可以同时安装的不同版本,则共享版本应该包含在两者中。

    例子,samba-dev,点击页面底部的文件列表这是静态库libc6-dev

    否则,仅将共享库放在常规二进制包中,然后将其添加为开发包的依赖项。

    参考:

相关内容