我有一个适用于 Linux 的 C/C++ am autoconf 源代码包,其中包含多个二进制文件,在开发中是合乎逻辑的,因为其中许多文件共享相同的源代码。有些二进制文件在图形环境中运行,有些是服务器组件,有些是服务器驱动程序、库,还有一些是 shell 命令。我想为这个系统制作一个合适的 debian 软件包(我已经有一个基于 checkinstall 的有效安装)。
如果我遵循 Debian 教程,我可以为所有二进制文件制作一个包。但是如果我想制作一个只安装一个二进制组件的包该怎么办呢?就我而言,将图形内容与非图形内容分开安装。
从教程中看来,我需要为我想要维护的每个包制作一个单独的源包,但这听起来很愚蠢,我一定错过了一些东西。
欢迎任何帮助或指点。
单个源代码包可以构建为多个二进制包(又名
.deb
文件,您可以安装它们)。这确实是创建 Debian 软件包时非常常见的模式。
要创建多个二进制包,您需要为每个包添加一个部分到您的
debian/control
文件中。比如:
Source: foobar
Section: utils
Priority: optional
Maintainer: [email protected]
Build-Depends:
debhelper (>= 10~),
Standards-Version: 4.1.1
Homepage: https://github.com/foobar/foobar
Package: foobar
Section: utils
Architecture: any
Multi-Arch: same
Depends:
foobar-common (= ${source:Version}),
${misc:Depends},
Description: foo bar baz
bla bla bla
Package: foobar-data
Architecture: all
Depends:
${misc:Depends},
Description: foo bar baz (architecture independent files)
furbel wurbel wiznagod blumpl.
bla bla bla.
.
this package contains the binary independent parts
在最简单的情况下,您需要指定哪些文件进入哪个包:
$ cat debian/foobar.install
foobar usr/bin/
foobar.1 usr/share/man/man1/
$ cat debian/foobar-data.install
data/* usr/share/foobar/
$
当然有大量的文档可用于此。