如何为 Debian/Ubuntu 创建 DEB 包

DEB 包是包含所有文件的存档,包括应用程序的编译版本、源代码、配置文件、图像和安装命令。 基于 Debian 的操作系统(如 Ubuntu 和 Kali Linux)中的 DEB 文件等同于 Windows 中的 EXE 文件。

下面介绍如何为基于 Debian 的 Linux 发行版开发自己的 DEB 包。

第 1 步:安装所需的软件包

准备 Debian 软件包需要一些程序。 首先,在您的系统上安装这些实用程序:

sudo apt install build-essential binutils lintian debhelper dh-make devscripts

第 2 步:包装选择

在为程序创建 Debian 软件包 (DEB) 之前,您应该考虑以下几点:

  • 检查您计划创建的软件包是否已经在 Debian 存储库中:
    apt-cache search package-name
  • 检查你要打包的程序有什么样的许可证。 使用 GNU/GPL 许可证是一种普遍的文化。
  • 确保该程序不会对系统造成安全问题。
  • 联系程序的作者。 通知 Debian 开发人员让该程序进入 Debian 存储库。

第 3 步:开始准备包裹

首先,在您的主目录下创建一个新目录以避免混淆。

cd /home
mkdir package
cd package

然后解压缩包含您要打包的程序源代码的 tar 存档到此目录下。 为了演示,我们将使用 rsyslog 存档。

tar -zxvf rsyslog-6.3.6.tar.gz

使用 cd 命令导航到新创建的目录:

cd rsyslog-6.3.6

通常,程序的源代码都带有 安装自述文件 文件。 即使您知道该程序是什么以及它是如何工作的,花一些时间阅读这些文件也会对您有所帮助。

有命令如 ./配置制作进行安装 可以轻松地在您的系统上安装此类档案。 但是有几个参数 。/配置 您应该注意的选项。 您可以使用 ./configure –help 命令获取此类信息。

第 4 步:添加开发者信息

在为您的程序创建 DEB 包之前,请注意包名和版本号。 您还需要在创建包时添加一些打包者信息。 为此,您必须使用以下命令导出您的信息:

 DEBEMAIL="[email protected]"
DEBFULLNAME="Name Lastname"

在此之后,使用魔术命令 dh_make.

dh_make

发出后 dh_make 命令,你应该选择你的包类型并按下 Enter.

在这一步之后,您会注意到父目录中的一个目录带有“.orig”扩展名。 如果这不起作用,请尝试运行 dh_make 命令与 –createorig 范围。

ls
# Output
rsyslog-6.3.6 rsyslog_6.3.6.orig.tar.xz rsyslog-6.3.6.tar.gz

您还可以在当前工作目录中看到一个名为 Debian 的新目录。 这些目录和文件包含有关程序的所有 Debian 软件包相关信息。

您需要了解有关位于 Debian 目录中的文件的以下信息。

1.控制文件

控制文件提供了各种与包相关的信息。

  • 资源: 您将在其中指定程序名称的行
  • 部分: 根据许可证确定您的程序属于哪个部分的行
  • 维护者: 包含准备包裹的人的信息的行
  • 构建依赖: 此行列出了依赖项
  • 要看: 这条线非常重要。 您使用此值指定包的依赖项
  • 描述: 您可以在其中输入有关包裹的信息的行

此文件包含有关程序许可证的信息。 其默认内容如下:

3.变更日志文件

这个文件就像你的程序的日志路线图。 如果你做了一些独立于程序源的事情,或者你已经修复了一些错误,你可以将它添加到这个文件中。

4. 规则文件

规则文件就像 Debian 软件包的 Makefile。 使用 dpkg 安装准备好的 Debian 软件包时,以该文件中的信息为基础。

您当然可以根据需要更改此文件中的参数。

5.目录中的其他文件

了解以下文件的功能也可能很有用:

  • 自述文件.Debian: 自述文件
  • conffiles.ex: 如果您想在安装程序时保留旧的设置文件,请使用此文件
  • cron.d.ex: 您可以使用此文件执行 cron 操作
  • 目录: 使用此文件指定不应在安装期间安装但应稍后创建的目录
  • 文档: 如果您的程序有文档,请使用此文件指定它们
  • emacsen*.ex: 如果您的程序在安装过程中需要 Emacs 文件,请使用此文件指定它
  • 初始化.d.ex: 如果您希望程序在系统启动时运行,请使用此文件

要进入下一阶段,请删除您认为不再需要的所有文件。 然后重命名文件扩展名并从末尾删除“.ex”。 “.ex”(示例)表示这是一个示例文件。

第 6 步:构建包

如果您已经走到这一步,您现在可以为您的程序准备 Debian 软件包了。 为此,请运行以下命令:

dpkg-buildpackage

这里的另一个重要问题是为您导出为维护者的电子邮件地址创建一个 GPG。

 DEBEMAIL="[email protected]"

dpkg 将在创建包时查找您的 GPG 信息。 您可以使用命令列出它 gpg –list-keys.

如果您在使用过程中遇到任何问题 dpkg-buildpackage 阶段,尝试以下命令:

dpkg-buildpackage -nc -i

该命令将忽略一些可能导致错误的部分。

如果一切顺利,您的程序的 Debian 软件包将准备好安装并存储在下一个目录中。 使用以下命令,您可以安装、测试和查看包。

dpkg -i package-name

任何人都可以在 Linux 上创建包

DEB 打包系统是使 Debian 成为 GNU/Linux 领导者的最基本元素之一。 Debian 是一个大型系统,对于贡献者来说,能够创建自己的软件包非常重要。

如果您是 GNU/Linux 新手,这可能看起来令人困惑。 但是,正如您所见,准备 Debian 软件包比您想象的要简单。 当然,构建 Debian 软件包需要时间和工作。

但这并不意味着您必须为要安装的程序手动创建包。 互联网上有几个网站可以免费下载 DEB 包。