从具有多个二进制文件的源文件创建 debian 包

问题描述 投票:0回答:1

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

如果我遵循 Debian 教程,我可以为所有二进制文件制作一个包。但是如果我想制作一个只安装一个二进制组件的包该怎么办呢?就我而言,将图形内容与非图形内容分开安装。

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

欢迎任何帮助或指点。

linux debian package deb
1个回答
3
投票

单个源代码包可以构建为多个二进制包(又名

.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/
$

当然有大量的文档可用于此。

© www.soinside.com 2019 - 2024. All rights reserved.