[ 上一頁 ] [ 目錄 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ 下一頁 ]
現在我們已經為建立套裝軟體做好了準備。
進入程式的主目錄然後執行如下命令:
dpkg-buildpackage -rfakeroot
這將為你做好每件事情。它會:
清理來源程式碼目錄樹(debian/rules clean),需要使用fakeroot
建立來源程式碼套裝軟體(dpkg-source -b)
建立程式(debian/rules build)
建立二進位套裝軟體(debian/rules binary),需要使用fakeroot
用檔案.dsc給來源程式碼簽名,需要使用gnupg
建立上傳檔案.changes並給它簽名,需要使用
dpkg-genchanges
和gnupg
唯一需要你輸入的是你的GPG密鑰的密碼,兩次。
當完成所有這些,你會在上一層目錄(~/gentoo/)中看到下面的檔案:
gentoo_0.9.12.orig.tar.gz
這是原來的來源程式的壓縮檔,為了遵守Debian的標準,修改了它的檔案名稱。注意
它是我們透過在開始時執行帶有“-f”參數的dh_make
命令建立的。
gentoo_0.9.12-1.dsc
這時對來源程式碼的一個總結。這個程式是利用你的“control”檔案建立的,並且在
用dpkg-source(1)
命令解開來源程式碼時將會用到。這個
檔案已經有了GPG簽名,這樣人們就可以確認他是你發佈的。
gentoo_0.9.12-1.diff.gz
這個檔案中包裝檔含了每一個你對原始來源程式碼所做的每一個修改,它的格式是“unified
diff”。他是由dpkg-source(1)
程式建立的,而且這
個程式還要使用它。警告:如果你沒有把原始的來源程式碼壓縮檔的名字改
成packagename_version.orig.tar.gz,dpkg-source
將不能正確地建立這
個.diff.gz檔案。
如果其它人希望從頭重新建構你的套裝軟體,它們可以用上面的三個檔案很容易地 做到。解開的程序很簡單:只要把這三個檔案複製到一個另外的目錄,然後運 行dpkg-source -x gentoo_0.9.12-1.dsc.
gentoo_0.9.12-1_i386.deb
這是你的完整的二進位套裝軟體。你可以像對待其它套裝軟體一樣用dpkg
命令
安裝和刪除它。
gentoo_0.9.12-1_i386.changes
這個檔案描述了描述了所有對目前版本的修訂版所作的改動,Debian FTP文件維 護程式在安裝二進位版本套裝軟體和來源程式碼版本的套裝軟體時將會使用到它。它的一 部分是透過“changelog”檔案和.dsc檔案建立的。這個檔案已經有了GPG簽名,這 樣人們可以確信它確實是你的。
因為你會繼續花精力在這個套裝軟體上,它的行為可能會改變,還有可能會增加一 些新的功能。下載了你的套裝軟體的人們可以透過閱讀這個檔案從而快速的了解到 什麼東西發生了變化。Debian的文件維護程式也會把這個檔案的內容發送 到debian-devel-changes信件列表上。
.dsc和.changes檔案中的長數位字串是上面提到的檔案的MD5校驗碼。下載了你
的檔案的人可以用md5sum(1)
來檢查這些數位是否相
同,這樣它們就可以知道檔案是不是損壞了,或是是否被竄改了。
對於一個很大的套裝軟體,你可能不希望在你調整了debian/rules
文
件的一些細節後都從頭來建立它。為了測試,你可以只製作一個.deb檔案而不重
新建構上游來源程式碼,具體的作法如下所示:
fakeroot debian/rules binary
一旦你完成了調整,記得要根據上面的內容從頭以正確的順序重新建立套裝軟體。 如果你想上傳一個以這種方式製作的.deb檔案時可能會遇到錯誤。
debuild
命令
使用debuild
命令你可以讓後面的建構套裝軟體的程序自動完成。
參考debuild(1)
。
對debuild命令的位址可以透過修改/etc/devscripts.conf
或
者~/.devscripts
完成。我建議至少修改以下內容:
DEBSIGN_KEYID="Your_GPG_keyID" DEBUILD_DPKG_BUILDPACKAGE_OPTS="-i -ICVS -I.svn"
使用這個組態,你就可以總是使用你的GPG密鑰來建構套裝軟體並避免不希望的部件。(這 對於發起人也是很好的。)譬如,使用一個使用者帳號清空來源碼並重新建構套裝軟體會非常 簡單:
debuild clean debuild
dpatch
系統
簡單地使用dh_make
和dpkg-buildpackage
命令會創
建一個大的diff.gz
檔案,這個檔案中會包裝檔含debian/
目錄中的檔案和來源碼補綴。當日後要檢查和理解每一處對來源碼的修改時,
這樣的包裝檔會難以處理。這樣總不是很好。 [1]
目前已經有多種管理多個補綴的方法用於Debian中。dpatch
系統是
其中最一簡單的一個,此外還有dbs、cdbs等。
一個用dpatch
系統打包裝檔的套裝軟體,其套裝軟體的修改記錄在debian/patches/
目錄下的一個文件清晰的補綴集中。debian/
目錄之外的來源碼樹並沒有被修改。如果你需要其它人來幫你上傳套裝軟體,
透過上述方法將你所做的修改清晰地分離出來並加上文件是非常重要的,它可以
方便別人檢查。dpatch
程式的使用方式在dpatch(1)
中解釋清楚了。
此後如果當某人(包裝檔括你自己)為你提供了一個來源碼補綴,在dpatch下修改來源碼包裝檔 是非常容易的:
修改補綴,使其成為對來源碼樹的-p1補綴。
用dpatch patch-template
命令加入檔案頭。
將其放入debian/patches
目錄
將此dpatch檔案放入debian/patches/00list
檔案中
此外dpatch
還可以透過使用CPP巨集讓補綴對體系結構無關。
orig.tar.gz
當你第一次上傳了套裝軟體時,你需要包裝檔含原始的orig.tar.gz
來源碼
包裝檔。如果包裝檔的Debian修正版本號不是-0或-1,你在使
用dpkg-buildpackage
命令需要加上“-sa”選項。換句話
說,“-sd”選項將會除去orig.tar.gz
檔案。
[ 上一頁 ] [ 目錄 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ 下一頁 ]
Debian新維護人員手冊
version 1.2.3, 2005年4月3日.joy-mg@debian.org
lilingv@gmail.com
ycheng@slat.org