這邊探討打包的工具。有dpkg-buildpackage, debuild, pbuilder, 和git-buildpackage等工具,分別討論如下:
如果單獨要rebuild套件,可以使用下面的指令。
fakeroot debian/rules binary
fakeroot debian/rules build
dpkg-buildpackage
從Autotools tarball打包deb套件: 不嚴謹style提到產生並設定好debian後,可以透過dpkg-buildpackage自動打包成deb檔案。而dpkg-buildpackage會做
- 套件大掃除 (debian/rules clean)
- 整理source檔案如apply patch (dpkg-source -b)
- 編譯 (debian/rules build)
- 安裝產生的檔案到虛擬 root (fakeroot debian/rules binary)並打包
- 如/usr/bin/xxx,/usr/share/doc/xxx, 等
- 使用gpg sign .dsc 檔案
- 產生並sign .changes 檔案
debuild
除了dpkg-buildpackage外,也有更嚴謹的套件產生工具debuild
可以使用。之前的測試用程式,用debuild全部會失敗,因為他提供了更多的檢查。列舉一些錯誤訊息如下。
1 2 3 4 5 6 7 |
|
和dpkg-buildpackage一樣,自幹可以下-uc -us
跳過sign的步驟。另外你也可以自訂一些初始參數,存到/etc/devscripts.conf或是~/.devscripts下面。手冊建議可以加入:
1 2 |
|
pbuilder
pbuilder透過pbuilder套件中的image以及chroot,使用乾淨的環境來產生並測是套件。如此一來可以確認是否debian目錄下面的設定是否真的可以在這些乾淨的環境被編譯和安裝。
照手冊整理使用方式:我全部沒測過,當作以後的課題好了。
- 環境設定
- 建立image
- 使用pbuilder打包source package (套件名稱.orig.tar.gz, 套件名稱.debian.tar.gz, 套件名稱.dsc)
- sign
透過版本控制版本來 buildpackage
- git-buildpackage
- svn-buildpackage
- cvs-buildpackage
Autobuilder
Autobuilder是Debian提供的服務,會自動rebuild原始套件,產生不同平台如X86, ARM專用的套件。