章 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. 高級打包