Pet*_*yan 5 compiling c debian raspbian apache-httpd
我正在尝试在 Debian 上编辑一个 Apache 模块(严格来说,我是在 Raspbian Jessie-Lite 上这样做的),并且大致遵循Debian 构建说明:
$ mkdir -p ~/src/debian; cd ~/src/debian
$ apt-get source apache2-bin
$ cd apache2-2.4.10
$ debuild -b -uc -us
Run Code Online (Sandbox Code Playgroud)
在旧的原始 Pi 上,构建过程大约需要一个半小时。这很好。一次!但我相信构建过程正在执行make clean,因此在对单个 mod_*.c 文件进行小幅编辑后,它想要重建整个东西,这有点减慢了我的开发速度!
我尝试添加-dc到debuild命令中,但它没有构建任何东西。我什至尝试删除目标 mod_*.so 文件以“鼓励”它重建它,但仍然没有!
更新 2016-08-21:将 -nc 添加到 debuild 命令不会导致模块重新编译。这是该命令的输出:
$ debuild -b -uc -us -nc
dpkg-buildpackage -rfakeroot -D -us -uc -b -nc
dpkg-buildpackage: source package apache2
dpkg-buildpackage: source version 2.4.10-10+deb8u5
dpkg-buildpackage: source distribution jessie-security
dpkg-buildpackage: source changed by Salvatore Bonaccorso <carnil@debian.org>
dpkg-source --before-build apache2-2.4.10
dpkg-buildpackage: host architecture armhf
debian/rules build
dh build --parallel --with autotools_dev
fakeroot debian/rules binary
dh binary --parallel --with autotools_dev
dpkg-genchanges -b >../apache2_2.4.10-10+deb8u5_armhf.changes
dpkg-genchanges: binary-only upload (no source code included)
dpkg-source --after-build apache2-2.4.10
dpkg-buildpackage: binary-only upload (no source included)
Now running lintian...
N: 16 tags overridden (1 error, 4 warnings, 11 info)
Finished running lintian.
Run Code Online (Sandbox Code Playgroud)
Fer*_*ner 10
将该-nc选项添加到debuild命令行。这可能会暴露构建系统或包装中的问题,因此请做好准备。但是对于小的修复,它通常可以正常工作。
然而,由于apache2源包使用 debhelper(像许多其他包一样),仅此是不够的,因为 debhelper 还在每个二进制包的单独日志文件中保存自己的已完成步骤日志。这些可以完全删除dh_clean。但是为了让 debhelper 只重做必要的工作,只截断相关的一项
sed -i '/^dh_auto_build$/Q' debian/apache2-bin.debhelper.log
Run Code Online (Sandbox Code Playgroud)
跑步前debuild -nc。
debian 目录中有一个规则文件。它本质上是一个 make 文件。如果删除所有有关清洁的指令,然后添加
override_dh_clean:
Run Code Online (Sandbox Code Playgroud)
并且不放入任何东西(根本)不会发生清洁。请小心,尽管这可能会导致构建问题,虽然可能性不大,但有可能。另一种选择是不更改任何内容并使用 -j 选项进行并行构建。不确定树莓派的优势。
规则文件应该如下所示。
| 归档时间: |
|
| 查看次数: |
3551 次 |
| 最近记录: |