使用多个二进制文件从源文件创建debian包

时间:2017-11-21 10:21:49

标签: linux debian package deb

我有一个用于Linux的C / C ++ am autoconf源包,它由几个二进制文件组成,在开发过程中是合乎逻辑的,因为它们中的许多共享相同的源。一些二进制文件在图形环境中运行,一些是服务器组件,一些用于服务器,libs和其他驱动程序是shell命令。我想为这个系统制作一个合适的debian软件包(我已经安装了基于checkinstall的安装)。

如果我按照Debian教程,我可以为所有二进制文件创建一个包。但是,如果我想创建一个只安装一个二进制组件的包,我该怎么办?在我的例子中,安装与非图形内容分开的图形内容。

从教程中看,我需要为我想要维护的每个包创建一个单独的源包,但这听起来很愚蠢,我一定错过了一些东西。

欢迎任何帮助或指示。

1 个答案:

答案 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可用。

相关问题