debian 源码编译-Debian 打包入门手册

变更日志包含每次变更的作者、修改内容、时间等信息

该控件包含包名称、维护者、构建依赖项等信息。

patch 目录包含包作者对上游代码所做的更改

Rules 是包的构建脚本

这些文件基本上是deb包的核心部分,也是我们以后对包进行修改时主要涉及到的部分。

首次成立

浏览完软件包的整体结构后,我们可以尝试改进软件包,但在此之前,我们首先需要安装它所需要的各种构建依赖项debian 源码编译,使用以下命令:

sudo apt build-dep node-pretty-ms

debian 源码编译_源码编译安装_源码编译debug包

apt会根据包控制文件中的描述手动构建依赖,帮助我们安装所需的依赖。 下载安装完成后,使用debuild命令完成:

debuild -b -uc -us

命令运行完毕后,可以在上层目录中找到编译好的deb包。

修改源码

当然,我们这次的目标并不仅限于完整地重新编译deb包。 毕竟,如果是这样的话,为什么不直接从服务器下载呢? 我们所要做的就是修改源代码并重新编译:

cd node-pretty-ms-7.0.1
vim index.js

debian 源码编译_源码编译安装_源码编译debug包

放在

throw new TypeError('Expected a finite number');

变成

throw new TypeError('Expected a finite number!');

保存退出,使用以下命令编译日志

dch -i -Dunstable

这里的不稳定是指软件分发渠道,由于我们不是官方维护者,所以我们所做的修改将默认添加到*非维护者上传。 在这种情况下,我们需要在下一行中声明我们对源代码所做的更改:

编写变更日志后,您可以退出编辑器并使用以下命令生成补丁:

dpkg-source -b . --commit

输入补丁名称并确认,该命令还会将我们之前所做的更改保存到 debian/patches 目录中,并在编译源代码时手动应用。

完成上述修改后,使用以下命令重新生成dsc源码

dpkg-source -b .

再次回到上层目录,可以看到新生成的.dsc和debian.tar.xz文件。 这些是应用了我们之前的更改的新 deb 软件包。 重新编译只需回到源码子目录并重新输入:

debuild -b -uc -us

然后就坐下来等待包裹被领取吧!

先进方法

使用前面的形式直接编译其实很方便debian 源码编译,但是当我们大规模打包的时候就会出现问题:不同的包有不同的依赖关系,重复安装不仅特别麻烦,而且有时还可能会导致依赖关系估计不正确——显然not need 依赖的软件包就变成了必须依赖,这样你构建的软件包在本机上可能可以正常工作,但是放在别人的机器上却无法正常编译安装。 这就轮到pbuilder和sbuild了:这些工具可以帮助我们构建一个隔离的环境,类似于chroot或者docker,但是对于打包有更具体的优化,下面以pbuilder为例进行演示,

要安装 pbuilder,只需在终端中输入以下命令:

sudo apt install pbuilder

安装完成后,使用以下命令创建编译环境

sudo pbuilder create

这一步将为我们以后的编译配置一个完整的环境。 创建完成后,运行以下命令完成编译

pbuilder build node-pretty-ms_7.0.1-1.dsc

这是关于 deb 打包的简短教程。 至于pbuilder更高级的用法,有待读者进一步挖掘。

参考文章: