第 9 章 上传软件包

# 第 9 章 上传软件包

本教程文档已被重写为另外的 Debian 维护者指导 文档，其中包含了更新的内容与更多实际例子。请使用新的教程作为主要的教程文档。

Debian now requires source-only uploads for normal upload. So this page is outdated.

现在你完成了对软件包的彻底测试，接下来将其释出到公共归档中分享它吧。

## 9.1. 上传到 Debian 仓库

当你成为正式的开发人员[82]，你可以把软件包上传到 Debian 仓库[83]。你可以手工进行这项工作，但使用例如 dupload(1) 或 dput(1) 的自动化工具可以帮你更好地完成这项操作。在此我们将叙述如何使用 dupload 操作。[84]

首先需要设置 dupload 的配置文件。你既可以编辑系统级的 `/etc/dupload.conf` 文件，也可以使用自己的 `~/.dupload.conf` 文件凌驾一些需要修改的设置。

你可以阅读 dupload.conf(5) man 手册页来了解各选项的含义。

`$default_host` 选项决定了默认使用哪个上传队列，`anonymous-ftp-master` 是最基本的一个，但你很可能希望改用其他的。[85]

连接到互联网后，可以使用以下命令上传你的软件包：

    $ dupload gentoo_0.9.12-1_i386.changes

dupload 会检查文件的 SHA1/SHA256 校验和是否与 `.changes` 文件中的相匹配，如果不匹配它会做出警告。你应按照如 第 6.1 节 “完整的(重)构建” 所述来重构建软件包使得它可以被正常上传。

如果你在 ftp://ftp.upload.debian.org/pub/UploadQueue/ 遇到了上传问题，你可以通过 ftp 来手动上传 GPG 签署的 `*.commands` 文件。 [86] 比如说，使用 `hello.commands` 命令：

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1
    Uploader: Foo Bar <Foo.Bar@example.org>
    Commands:
     rm hello_1.0-1_i386.deb
     mv hello_1.0-1.dsx hello_1.0-1.dsc
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.10 (GNU/Linux)

    [...]
    -----END PGP SIGNATURE-----

## 9.2. 在上传时包含 `orig.tar.gz` 文件

第一次向仓库上传软件包时要包含 `orig.tar.gz` 源代码归档。如果这个软件包的修订号既不是 `1` 也不是 `0`, 那你就必须给 dpkg-buildpackage 加上选项 `-sa`。

对于 dpkg-buildpackage 命令：

    $ dpkg-buildpackage -sa

对于 debuild 命令：

    $ debuild -sa

对于 pdebuild 命令：

    $ pdebuild --debbuildopts -sa

另一方面，请注意 `-sd` 选项会强制 排除原始的 `orig.tar.gz` 源代码。

## 9.3. 跳过的上传

如果你在 `debian/changelog` 创建了多个条目并跳过了上传，你必须创建一个相应的 `*_.changes` 文件，其中包含自上次上传以来的全部变更记录。这可以通过指定 dpkg-buildpackage 的 `-v` 并将版本传递给它来完成。比如， ``1.2``.

对于 dpkg-buildpackage 命令：

    $ dpkg-buildpackage -v1.2

对于 debuild 命令：

    $ debuild -v1.2

对于 pdebuild 命令：

    $ pdebuild --debbuildopts "-v1.2"

[82] 参见 第 1.1 节 “Debian 的社会驱动力”。

[83] 有许多公开的档案比如 http://mentors.debian.net/ ，它们的运作方式几乎与 Debian 档案一致，并提供了一个非开发者的上传区域。你可以自己建立一个等效档案，只要使用 http://wiki.debian.org/HowToSetupADebianRepository 里边列举出来的工具。 所以这一小节也对非开发者特别有用。

[84] `dput` 软件包提供了更多的特性，相比于 `dupload` 也越来越受欢迎。它使用 `/etc/dput` 文件作为全局配置文件、`~/.dput.cf` 作为用户配置文件。它也直接支持 ubuntu 相关的服务。

[85] 参见 Debian Developer's Reference 5.6. "Uploading a package".

[86] 参见 ftp://ftp.upload.debian.org/pub/UploadQueue/README。 或者是， 你可以使用 dcut 命令，它来自 `dput` 软件包。

第 8 章 更新软件包 |  | 附录 A. 高级打包