[ 上一頁 ] [ 目錄 ] [ 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-21 14:06:56 UTC

Josip Rodin joy-mg@debian.org

翻譯:Aron Xu happyaron.xu@gmail.com
翻譯:李凌 lilingv@gmail.com
翻譯:郑原真 ycheng@slat.org
繁簡轉換:陳侃如 koster@debian.org
繁簡轉換:青木修 osamu@debian.org