将 PHP 源代码编译为 Deb 包

由于 Linux 发行版的包管理器一般不会使用最新版的软件,或有需要对软件源码进行修改后再编译,并通过 deb 包的形式进行安装以统一对软件进行管理。如果直接从源代码编译,则需要学习 Debian 打包规则并进行较为复杂的打包程序。

本文介绍了一种从 Debian Git 仓库获取源代码并编译的方式。该仓库的源代码已包含软件本身及打包信息,并可以通过简单的命令完成编译和打包。这有助于新手或不想详细了解 Debian 打包过程的人快速创建某个软件的 Debian 包,降低了学习 Debian 软件打包的难度,并能通过进行实际操作对 Debian 的打包过程有更好的体验。

本文所述方法不仅适用于 PHP,也能类推到其他软件。Debian 包可在所有 Debian 系 Linux 发行版(如 Ubuntu)上进行编译、打包和安装。

本文所述编译、打包环境为 Windows Subsystem For Linux (WSL) Ubuntu 20.04 LTS,安装、测试环境为 Ubuntu Server 20.04.1 LTS。

获取源代码

Debian Salsa 上储存了带有打包信息的源代码。PHP 源码位于 https://salsa.debian.org/php-team/php

要获取带有打包信息的源代码,需要选择带有 upstream 的 Git 分支。在编译机器上下载该源代码仓库:

1
2
3
sudo apt-get install unzip
wget https://salsa.debian.org/php-team/php/-/archive/debian/main/7.4/php-debian-main-7.4.zip
unzip php-debian-main-7.4.zip

安装打包环境

1
sudo apt-get install build-essential fakeroot devscript

随后,进入该源代码目录,并尝试一次编译。一般来说,由于相关依赖尚未安装,这次编译不会成功,并将提示需要的依赖。请通过 apt-get install 安装它们。

1
2
cd php-debian-main-7.4
debuild -b -uc -us

进行编译

1
debuild -b -uc -us

编译的结果在 ../ 目录下。

结果

编译后,程序会生成 .deb.ddeb 以及 .buildinfo 等文件。我的编译结果在 我的 OneDrive 共享 上可以查看。

您通过以下直链在此下载我的结果:

参考文献

  1. Debian Salsa: Debian PHP Team/php
  2. Building Tutorial - Debian Wiki

分享文章

链接
HTML
Markdown