如何获取 Debian 软件包的构建过程?

kjo*_*kjo 5 debian dpkg package-management configure pkg-config

我想构建一些软件的版本,该版本比当前作为稳定版本 Debian 软件包提供的版本更新。

然而,为了做到这一点,除了使用更新版本的源代码之外,我还想尽可能严格地遵循用于在稳定版本中为此软件构建 Debian 软件包的构建过程。

至少,我想在构建过程中为相关环境变量指定相同的配置标志和相同的值,就像对该软件的稳定版本 Debian 软件包所做的那样。

问:如何找到特定(稳定版本)Debian 软件包的构建过程?

Ste*_*itt 7

Debian 软件包的构建过程由其源软件包描述。如果您有 Debian 系统,可以使用以下命令下载

\n
apt source ${package}\n
Run Code Online (Sandbox Code Playgroud)\n

如果您sources.list包含适当的deb-src条目。如果您的存储库中引用了多个版本,则可以在版本之后指定您\xe2\x80\x99re stable

\n
apt source ${package}/stable\n
Run Code Online (Sandbox Code Playgroud)\n

(假设您stable的存储库中有)。您可能会发现您感兴趣的较新版本已经打​​包在testingunstable中,在这种情况下,使用它可以节省您一些时间 \xe2\x80\x94 请参阅如何安装比 Debian 更新版本的软件提供?获取有关这种情况的说明。

\n

源码包中,主要看的文件是debian/controldebian/rules。例如,hellopackage\xe2\x80\x98scontrol文件指定它使用debhelper兼容级别 9 进行构建(请参阅man debhelper详细信息),并且它的rules文件指定它使用默认dh设置进行构建(包括默认dpkg构建标志,请参阅 参考资料dpkg-buildflags)。

\n

如果您的源包指定了如何更新它,您可能只需要运行

\n
uscan\n
Run Code Online (Sandbox Code Playgroud)\n

要更新源码包,请切换到相应的目录,添加新版本的changelog条目

\n
dch -v 1.2.3-0.1 "New upstream release."\n
Run Code Online (Sandbox Code Playgroud)\n

1.2.3适当替换),然后

\n
dpkg-buildpackage -us -uc\n
Run Code Online (Sandbox Code Playgroud)\n

构建包。

\n

以这种方式更新软件包时的主要问题是可能需要更新任何补丁。如果debian/patches/series存在并且 \xe2\x80\x99t 为空,则 \xe2\x80\x99 需要依次检查每个补丁,方法是运行quilt push; man quilt详情请参阅。

\n