2007年12月3日 星期一

將Source code 編譯成 deb

簡介

deb檔要包裝前要寫一堆資訊檔才行,其中包括了 像pkgtools一樣的scriptsdebian也有像Solaris裡的 postinstall preinstall postremove preremove這些scripts可以用, 其中最重要的資訊檔是一個名叫control的檔

需要的一些工具

dpkg

dpkg-deb 這兩個是最基本的

如果想成為Debiandistribution開發者,因為他們有一些遊戲規矩, 包括source code的改版,必要文件等規則, 下面的套件會幫你,如果不想submit你的deb檔給Debian,就不用裝了

dh-make 製做必要資訊檔的sample檔案 這其實還蠻有用的

debhelper dh-make dependency

devscripts 一些scripts

fakeroot 假裝是root的工具

lintian 測試與檢查package檔的工具

建立步驟

deb必須先有source tree,站在source tree的最上面, 解開後直接用

$ dh_make

幫你建一個叫debian的目錄及寫一堆sample後再自己改, cscope 15.6 做例子。

1. 先去cscope.sourceforge.net捉原始檔.tar.gz回來

2. 解開在/home/waynel/cscope-15.6,這邊一定要用 pkgname-version這樣形式的目錄

3. 進去cscope-15.6source code最上層直接執行dh_make, 會創造一個目錄叫debian,然後改這裡面的資訊檔

$ dh_make -e wayne_teng@compal.com -f ../cscope-15.6.tar.gz

在此次執行dh_make之後,上游的套裝軟體將會被打包裝檔為cscope-15.6.tar.gz並放在父目錄中,以便 用diff.gz建立非Debian原有的來源程式碼包裝檔。請注意檔案名稱中的兩個 關鍵點:

· 包裝檔名稱和版本是以_分割的。

· 在之前tar.gzorig.

$ dpkg-buildpackage -rfakeroot

,會自己叫configure創造Makefile, 不然必需自己想辦法創造一個Makefile再叫 dpkg-buildpackage -rfakeroot就會自己創造出xxxx.deb

如果下載的source code裡面有一個目錄debian,就直接執行

$ dpkg-buildpackage

已經多次運行了上邊的命令, 也可以使用下邊的命令快速構建臨時 .deb :

$ fakeroot debian/rules binary

1 則留言:

Unknown 提到...

站長的"關於自己"有地方打錯了!

"...若是有疑問, 請amil給..."

您不小心把mail打錯了

 Ubuntu has a mechanism, that is, the installed network card (NIC) will be renamed to another name when the system is booted. Although there...