如何为 Debian/Ubuntu 创建 DEB 包

994 阅读5分钟

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

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

第一步:安装所需软件包

准备一个Debian软件包需要一些程序。要开始,请在你的系统上安装这些实用程序。

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

第二步:软件包的选择

在为一个程序创建Debian软件包(DEB)之前,你应该考虑几个要点。

  • 检查你打算创建的软件包是否已经在 Debian 仓库中。

    apt-cache search package-name
    
  • 检查您要打包的程序有什么样的许可证。一般来说,有一种使用 GNU/GPL 许可证的文化。

  • 确保该程序不会对系统造成安全问题。

  • 联系该程序的作者。通知 Debian 开发人员,让这个程序进入 Debian 软件库。

第三步:开始准备软件包

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

cd /homemkdir packagecd package

然后在这个目录下提取包含你要打包的程序的源代码的tar压缩包。为了演示,我们将使用rsyslog存档。

tar -zxvf rsyslog-6.3.6.tar.gz

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

cd rsyslog-6.3.6

通常情况下,程序的源代码会附带INSTALLREADME文件。即使你知道该程序是什么以及它是如何工作的,花些时间阅读这些文件对你也是有益的。

有一些命令,如**./configure makemake install**,可以很容易地在你的系统上安装这种档案。但**./configure选项有几个参数是你应该注意的。你可以使用./configure --help**命令来获得这些信息。

第4步:添加开发者信息

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

export DEBEMAIL="your@mail.com"export DEBFULLNAME="Name Lastname"

在这之后,使用神奇的命令dh_make

dh_make

在发出dh_make命令后,你应该选择你的软件包类型并按回车键

在这一步之后,你会注意到在一个父目录下有一个扩展名为".orig "的目录。如果这不起作用,试着用**--createorig参数运行dh_make**命令。

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

您还可以看到在目前的工作目录下有一个名为 Debian 的新目录。这些目录和文件保存了所有与 Debian 软件包有关的信息。

第五步:与软件包相关的 Debian 文件

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

1.控制文件

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

  • **来源。**你将指定你的程序名称的那一行
  • **部分。**这一行决定了你的程序根据许可证属于哪个部分。
  • **维护者。**包含编写软件包的人的信息的那一行
  • **Build-Depends。**依赖关系在这一行被列出
  • **依赖。**这一行非常重要。你可以用这个值来指定你的软件包的依赖性。
  • 描述。这一行你可以输入关于软件包的信息

2.版权文件

这个文件包含关于程序许可证的信息。它的默认内容如下。

3.更新日志文件

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

4.规则文件

规则文件就像你的 Debian 软件包的 Makefile。当用dpkg安装准备好的Debian软件包时,这个文件中的信息被作为基础。

当然,你可以根据你的需要改变这个文件中的参数。

5.目录中的其他文件

了解以下文件的功能可能也是有用的。

  • **README.Debian。**自述文件
  • **conffiles.ex:**如果你想在安装程序时保留你的旧设置文件,请使用这个文件
  • **cron.d.ex:**你可以用这个文件进行cron操作
  • **dirs:**使用这个文件来指定在安装过程中不应该安装但应该在以后创建的目录。
  • **docs。**如果你的程序有文件,用这个文件指定它们
  • **emacsen*.ex:**如果你的程序在安装过程中需要Emacs文件,用这个文件指定它
  • **init.d.ex:**如果你想让你的程序在系统启动时运行,就使用这个文件。

要进入下一阶段,请删除任何你认为不再需要的文件。然后重新命名文件的扩展名,并将".ex "从结尾处删除。.ex"(示例)表示这是一个示例文件。

第6步:构建软件包

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

dpkg-buildpackage

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

export DEBEMAIL="example@mail.com"

dpkg会在创建软件包时查找你的GPG信息。你可以用gpg --list-keys命令列出它。

如果你在dpkg-buildpackage阶段遇到了任何问题,可以尝试使用下面的命令。

dpkg-buildpackage -nc -i

这个命令会忽略一些可能导致错误的部分。

如果一切顺利,你的程序的 Debian 软件包就可以安装了,并存储在下一个目录中。通过下面的命令,你可以安装、测试和审查该软件包。

dpkg -i package-name

任何人都可以在 Linux 上创建一个软件包

DEB 打包系统是区分 Debian 作为 GNU/Linux 领导者的最基本的元素之一。蝶变是一个庞大的系统,对于贡献者来说,有能力创建自己的软件包真的很重要。

如果你是 GNU/Linux 的新手,这可能会让你感到困惑。然而,正如你所看到的,准备一个 Debian 软件包比你想象的要简单。当然,建立一个 Debian 软件包需要时间和工作。

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