我有一个用于Linux的C / C ++ am autoconf源包,它由几个二进制文件组成,在开发过程中是合乎逻辑的,因为它们中的许多共享相同的源。一些二进制文件在图形环境中运行,一些是服务器组件,一些用于服务器,libs和其他驱动程序是shell命令。我想为这个系统制作一个合适的debian软件包(我已经安装了基于checkinstall的安装)。
如果我按照Debian教程,我可以为所有二进制文件创建一个包。但是,如果我想创建一个只安装一个二进制组件的包,我该怎么办?在我的例子中,安装与非图形内容分开的图形内容。
从教程中看,我需要为我想要维护的每个包创建一个单独的源包,但这听起来很愚蠢,我一定错过了一些东西。
欢迎任何帮助或指示。
答案 0 :(得分:0)
单个源包可以构建为多个二进制包(也称为.deb
- 文件,您可以安装)。在创建Debian软件包时,这确实是一种非常常见的模式。
要创建多个二进制包,您需要为每个二进制包添加一个部分到debian/control
文件。类似的东西:
Source: foobar
Section: utils
Priority: optional
Maintainer: me@example.com
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)
libmysofa is a light weight C-library intended to read SOFA (Spatially Oriented
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/
$
当然有plenty of documentation可用。