2011年7月12日 星期二

使用 pbuilder-dist/cowbuilder-dist 協助編譯及打包 Debian package

在 Debian/Ubuntu 上面寫好程式並且打包成 Debian source package 之後,可以藉由 Launchpad 上的 PPA 服務來編譯打包成 Debian binary package 給 Ubuntu 的使用者使用,但是在 Debian 這邊目前還沒有像是 PPA 這樣的服務可以使用 (不過Debian 官方已經有計劃要做了),於是現在就只能使用 pbuilder/cowbuilder 這樣工具來建立一個乾境的 chroot 環境來編譯打包 Debian binary package 給 Debian 的使用者使用。

最近發現在 ubuntu-dev-tools 裡面有 pbuilder-dist/cowbuilder-dist 這樣方便的工具,可以透過幾個簡單的指令就完成複雜的動作,雖然它的名稱叫做 ubuntu-dev-tools 其實它也是存在 Debian 官方套件庫裡面可以直接安裝來使用。

例如在 Ubuntu 11.04 (amd64) 底下想要建立 Debian 6.0 squeeze (i386) 的 chroot 環境就可以使用以下的指令:
$ pbuilder-dist stable i386 create

接下來要利用這個環境編譯 Debian 6.0 squeeze (i386) 底下使用的 pcmanx-gtk2,所以要執行以下的指令:
$ pbuilder-dist stable i386 build pcmanx-gtk2_1.0-svn577-1~squeeze1.dsc

最後就可以在 ~/pbuilder/stable-i386_result/ 底下看到編譯好的 pcmanx-gtk2_1.0-svn577-1~squeeze1_i386.deb

當然上面的 stable 在 Ubuntu 底下可以代換成 natty,maverick,lucid,... (如果是要編譯打包 Ubuntu 發行套件) 或是 testing, unstable, experimental (如果是要編譯打包 Debian 發行套件);另外就是 i386 可以代換成 amd64 如果搭配 qemubuilder 也許還可以編譯打包出 arm, mipsel, ... 其它 CPU 架構底下的套件出來使用。

此次編譯出來給 Debian 6.0 squeeze i386/amd64 使用的 pcmanx-gtk2 放在 http://archive.sylee.org/deb/ 底下。

參考文件:https://wiki.ubuntu.com/PbuilderHowto
張貼留言