[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 下一页 ]


Debian 新维护人员手册
第 7 章 - 检查软件包中的错误


在上传软件包到公共仓库前,你还需要自己做一些检查软件包错误的例行工作。

不仅在自己的机器上测试总是一个好主意。你必须谨慎地对待以下叙述的测试中显示的任何一个警告或错误信息。


7.1 检验软件包安装过程

你必须测试你的软件包看是否存在安装问题。debi(1) 命令可以帮助你测试生成的二进制软件包。

     $ sudo debi gentoo_0.9.12-1_i386.changes

你必须使用从 Debian 仓库下载的 Contents-i386 文件校验是否在不同系统上存在文件覆盖的问题。apt-file 命令正适合完成这个任务。如果存在问题,请通过与受影响的软件包合作使用 alternatives 机制来避免实际问题(参看 update-alternatives(1))或在 debian/control 文件中设置 Conflicts 条目。


7.2 检验 maintainer scripts

所有 maintainer scripts,包括 preinstprermpostinstpostrm 文件,除非是由 debhelper 程序自动生成的,都是测试的重点。如果你是新维护人员则不要使用它们(参看 {post|pre}{inst|rm} 文件, 第 5.18 节)。

如果软件包使用了这些需要严格测试的 maintainer scripts,请确保不仅测试 install,还要测试 remove、purge 和 upgrade。很多 maintainer scripts 的 Bug 都显现于卸载或彻底删除软件包时。使用 dpkg 命令来测试它们。

     $ sudo dpkg -r gentoo
     $ sudo dpkg -P gentoo
     $ sudo dpkg -i gentoo_version-revision_i386.deb

整个测试过程应按照以下序列操作:

如果这是你的第一个软件包,你应该使用其他版本号创建一个测试用的软件包来完成升级测试,这样可以避免将来的问题。

请牢记如果你的软件包已经在以往版本的 Debian 中发布,人们通常会从最近发布的 Debian 发布里的版本升级,所以也要测试从那个版本升级到当前的版本。

尽管降级没有被正式支持,支持它也总是不错的。


7.3 lintian 软件包

使用 lintian(1) 检查你的 .changes 文件。lintian 命令会运行很多测试脚本来检查常见的打包错误。[50]

     $ lintian -i -I --show-overrides gentoo_0.9.12-1_i386.changes

当然,要使用你自己软件包所生成的 .changes 文件的文件名。lintian 命令的输出常带有以下几种标记:

对于警告,你应该改进软件包或者检查警告是否的确无意义。如果确定没有意义,则按照 {package.|source/}lintian-overrides 文件, 第 5.13 节 中的叙述使用 lintian-overrides 文件将其覆盖。

你可以使用 debuild(1)pdebuild(1)dpkg-buildpackage 与在其后运行 lintian 合并到一个命令里。


7.4 debc 命令

你可以使用 debc(1) 命令列出一个二进制 Debian 软件包中的文件。

     $ debc package.changes

7.5 debdiff 命令

你可以使用 debdiff(1) 命令比较两个 Debian 源代码包的内容。

     $ debdiff old-package.dsc new-package.dsc

你还可以使用 debdiff(1) 命令比较两个 Debian 二进制包的文件列表。

     $ debdiff old-package.changes new-package.changes

这个命令对于检查源代码包中哪些文件被修改了非常有用,还可以发现二进制包中是否有文件被意外替换或删除,或在更新二进制包时检查是否有其他没有被提及的变更。


7.6 interdiff 命令

你可以使用 interdiff(1) 命令比较两个 diff.gz 文件。这对于更新使用旧的 1.0 源代码格式的软件包时,检查是否有意外的变更非常有用。

     $ interdiff -z old-package.diff.gz new-package.diff.gz

7.7 mc 命令

很多文件检查操作可以通过使用类似 mc(1) 的文件管理器来完成,它可以帮助你直接查看 *.deb 文件的内容,除此之外还可以用于 *.udeb*.debian.tar.gz*.diff.gz*.orig.tar.gz 文件。

还要检查在二进制包和源代码包中是否有不需要的文件或者空文件。这些文件经常没有被正确清理,如果存在这种情况,要调整 rules 文件进行处理。


[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 下一页 ]


Debian 新维护人员手册

版本 1.2.25, 2010-12-22 12:44:34 UTC

Josip Rodin joy-mg@debian.org

翻译:Aron Xu happyaron.xu@gmail.com
翻译:李凌 lilingv@gmail.com
翻译:郑原真 ycheng@slat.org