[ 上一頁 ] [ 目錄 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 下一頁 ]
在上傳套件到公共倉庫前,你還需要自己做一些檢査套件錯誤的例行工作。
不僅在自己的機器上測試總是一個好主意。你必須謹慎地對待以下敘述的測試中顯示的任何一個警告或錯誤訊息。
你必須測試你的套件看是否存在安裝問題。debi(1)
命令可以幫助你測試生成的二進位套件。
$ sudo debi gentoo_0.9.12-1_i386.changes
你必須使用從 Debian 倉庫下載的 Contents-i386
檔案校驗是否在不同系統上存在檔案覆蓋的問題。apt-file
命令正適合完成這個任務。如果存在問題,請通過與受影響的套件合作使用
alternatives 機制來避免實際問題(參考
update-alternatives(1)
)或在 debian/control
檔案中設置 Conflicts 條目。
所有 maintainer scripts,包括
preinst
、prerm
、postinst
和
postrm
檔案,除非是由 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 發佈裏的版本升級,所以也要測試從那個版本升級到當前的版本。
儘管降級沒有被正式支持,支持它也總是不錯的。
lintian
套件
使用 lintian(1)
檢査你的 .changes
檔案。lintian
命令會運行很多測試腳本來檢査常見的打包錯誤。[50]
$ lintian -i -I --show-overrides gentoo_0.9.12-1_i386.changes
當然,要使用你自己套件所生成的 .changes
檔案的檔案名。lintian
命令的輸出常帶有以下幾種標記:
E: 代表錯誤:確定違反了 Debian Policy 或是一個肯定的打包錯誤。
W: 代表警告:可能違反了 Debian Policy 或是一個可能的打包錯誤。
I: 代表訊息:對於特定打包類別的訊息。
N: 代表註釋:幫助你調試的詳細訊息。
O: 代表已覆蓋:一個被 lintian-overrides
檔案覆蓋的訊息,但由於使用 --show-overrides
選項而顯示。
對於警告,你應該改進套件或者檢査警告是否的確無意義。如果確定沒有意義,則按照
{package.|source/}lintian-overrides
檔案, 第 5.13 節 中的敘述使用 lintian-overrides
檔案將其覆蓋。
你可以使用 debuild(1)
或 pdebuild(1)
將
dpkg-buildpackage
與在其後運行 lintian
合併到一個命令裏。
debc
命令
你可以使用 debc(1)
命令列出一個二進位 Debian
套件中的檔案。
$ debc package.changes
debdiff
命令
你可以使用 debdiff(1)
命令比較兩個 Debian
原始碼套件的內容。
$ debdiff old-package.dsc new-package.dsc
你還可以使用 debdiff(1)
命令比較兩個 Debian
二進位套件的檔案列表。
$ debdiff old-package.changes new-package.changes
這個命令對於檢査原始碼套件中哪些檔案被修改了非常有用,還可以發現二進位套件中是否有檔案被意外替換或刪除,或在更新二進位套件時檢査是否有其他沒有被提及的變更。
interdiff
命令
你可以使用 interdiff(1)
命令比較兩個
diff.gz
檔案。這對於更新使用舊的 1.0
原始碼格式的套件時,檢査是否有意外的變更非常有用。
$ interdiff -z old-package.diff.gz new-package.diff.gz
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 UTCjoy-mg@debian.org
happyaron.xu@gmail.com
lilingv@gmail.com
ycheng@slat.org
koster@debian.org
osamu@debian.org