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


Debian 新维护人员手册
第 9 章 - 更新软件包


一旦你发布了一个软件包,在之后的某个时间里就需要对它进行更新。


9.1 新的 Debian 版本

假设针对你的软件包报告的 Bug 号为 #54321,它描述了一个你可以解决的问题。要创建软件包的一个新 Debian 版本,你需要:


9.2 检查新上游版本

在为 Debian 仓库准备新上游版本的软件包前,你必须首先检查它。

检查工作应从阅读 changelogNEWS 以及所有随新版本一同发布的文档。

然后应按照以下步骤检查新旧版本之间的差别,看是否存在可疑的内容:

     $ diff -urN foo-oldversion foo-newversion

对于 Autotools 自动生成的文件,例如 missingaclocal.m4config.guessconfig.h.inconfig.subconfiguredepcompinstall-shltmain.shMakefile.in 是可以忽略的。你可以在运行 diff 进行代码检查前删除它们。


9.3 新上游版本

如果软件包 foo 是使用新的 3.0 (native)3.0 (quilt) 格式打包的,制作新的上游版本时需要先把旧的 debian 目录移至新的源代码内。这可以通过在新解压的源代码目录里运行 tar xvzf /path/to/foo_oldversion.debian.tar.gz 完成。[54]当然,你需要做几个很显然的杂事。

如果补丁没有干净地被应用,检查原因(线索在 .rej 文件里)。

这个过程可以通过使用 uupdate(1) 来更自动化地完成:

     $ apt-get source foo
     ...
     dpkg-source: info: extracting foo in foo-oldversion
     dpkg-source: info: unpacking foo_oldversion.orig.tar.gz
     dpkg-source: info: applying foo_oldversion-1.debian.tar.gz
     $ ls -F
     foo-oldversion/
     foo_oldversion-1.debian.tar.gz
     foo_oldversion-1.dsc
     foo_oldversion.orig.tar.gz
     $ wget http://example.org/foo/foo-newversion.tar.gz
     $ cd foo-oldversion
     $ uupdate -v newversion ../foo-newversion.tar.gz
     $ cd ../foo-newversion
     $ while quilt push; do quilt refresh; done
     $ dch
     ... document changes made

如果你按照 watch 文件, 第 5.20 节 的叙述设置了 debian/watch 文件,你可以跳过这个 wget 命令,转而在 foo-oldversion 目录中运行 uscan(1),且无需再执行 uupdate 命令。它会 自动 查找新的源代码、下载并运行 uupdate 命令。[55]

重复 完整的(重)构建, 第 6.1 节检查软件包中的错误, 第 7 章上传软件包, 第 8 章 中的操作,即可发布此更新的软件包。


9.4 更新打包风格

更新打包风格不是更新软件包的必须步骤,但是这样可以使你的软件包得到对现代的 debhelper 系统和 3.0 源代码包格式完整的兼容性。[56]

当然你还需要按照 新上游版本, 第 9.3 节 完成其他的步骤。


9.5 对更新软件包的几点提示

以下是对更新软件包的几点提示。


[ 上一页 ] [ 目录 ] [ 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