如何从pbuilder-dist运行lintian?

我正在使用pbuilder-dist来为Debian unstable和Ubuntu Precise构建我的软件包。我想知道如何在特定的chroot环境中运行lintian(以及可能的其他命令)。
我的机器上安装了Ubuntu 12.04。

认为Lintian可以作为独立的命令运行,如果不行的话,你可以在构建时使用pbuilder来构建源代码包(使用debuild -S创建源代码包),但是我并不完全确定,所以我不会将这个作为一个确切的答案发布出来。 - Thomas Ward
2个回答

Lintian可以在cowbuilderpbuilder中使用钩子运行。 在/usr/share/doc/pbuilder/examples/目录下有几个示例可供参考。
只需将所需的钩子复制到一个目录中即可:
mkdir ~/pbuilderhooks
cp /usr/share/doc/pbuilder/examples/B90lintian $HOME/pbuilderhooks

然后告诉 pbuilder 使用该目录中的钩子:
echo "HOOKDIR=$HOME/pbuilderhooks/" >> ~/.pbuilderrc

和/或:

echo "HOOKDIR=$HOME/pbuilderhooks/" | sudo tee -a /etc/pbuilderrc

如果您打算在不使用sudo的情况下运行cowbuilder-dist或pbuilder-dist,则需要第一个;如果您打算运行sudo cowbuilder或sudo pbuilder,则需要后者。使用tee -a以避免覆盖原始的/etc/pbuilderrc文件。

运行debuild -S会为您运行lintian在源代码.changes文件上。在二进制构建期间,也会对.changes文件运行Lintian。一旦您构建了二进制和/或源代码包,您可以手动运行Lintian来检查任何.changes文件,就像这样:
mfisch@caprica:~$ lintian libkqueue_1.0.4-2ubuntu1_amd64.changes

或者

mfisch@caprica:~$ lintian libkqueue_1.0.4-2ubuntu1_source.changes

每次构建(源码和二进制)可能会出现不同的Lintian错误或警告。

如果您想加快速度,可以运行pbuilder --login,在其中安装构建依赖项并进行构建,这样可以节省在每次构建之前重新安装依赖项的启动时间。