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

Dig*_*ode 5 package-management packaging dpkg

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

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

use*_*.dz 5

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

  • 您可以将所有文件包含在一个二进制包中。但仍然最好将开发文件分开放在另一个文件中。

    *-dev(not -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
      ...
    
    Run Code Online (Sandbox Code Playgroud)

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

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

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

    例如,samba-dev在页面底部单击文件列表,然后单击静态库libc6-dev

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

    参考: