天天看點

制作Ubuntu deb包的三種方法

original url: http://www.cnblogs.com/sunyubo/archive/2010/08/27/2282129.html

一、使用deb包

1. 檢視deb包含有哪些檔案(不安裝)

$ dpkg -c xxx.deb // 安裝前根據deb檔案檢視

$ dpkg -L debname // 安裝後根據包名檢視

2. 安裝deb包

$ dpkg -i xxx.deb

注意,如果提示錯誤,可以加參數—force-all強制安裝,但不推薦這樣做

3. 檢視某個檔案屬于哪個deb包

$ dpkg -S filepath

4. 移除deb包

$ dpkg -r debname

二、制作deb包

1. 原理

1) deb包通常包含兩部分:控制資訊(DEBIAN目錄)、安裝内容(模拟root目錄)

2) 通過解開已有的deb包看其中内容

i. 釋放安裝内容到dirname目錄中

$ dpkg -X xxx.deb dirname

ii.釋放控制資訊到目前目錄下的DEBIAN子目錄中

$ dpkg -e xxx.deb

2. 準備

1) 實驗平台

ubuntu 8.04

2) 安裝相關工具

$ apt-get install dh-make checkinstall

3) 下載下傳示例軟體包

以遊戲模拟器為例(也可使用其它源碼包),制作它的deb包,下載下傳位址:

http://prdownloads.sourceforge.net/fceultra/fceu-0.98.12.src.tar.bz2

4) 注意:對于自己寫的代碼制做deb包,建議用autoconf, automake生成編譯腳本,例程見

http://xy0811.spaces.live.com/default.aspx?_c01_BlogPart=blogentry&_c=BlogPart&handle=cns!F8AECD2A067A6B17!1002

3. 方法一: 使用checkinstall方法建立deb包

checkinstall不僅可以生成deb包,還可以生成rpm包,使用簡單,但是不靈活,功能粗糙,隻做介紹,不推薦使用

$ tar xvjf fceu-0.98.12.src.tar.bz2 // 解包

$ cd fceu;./configure;make // 編譯

$ checkinstall -D -y -install=no –pkgversion-0.98 –pkgname=fceuxy –pkgcource=./ –showinstall=no -default make install // 制作deb包

此時目前目錄下生成了deb包

4. 方法二: 使用dpkg方法建立deb包

dpkg是最基本的制作deb包的方法,推薦使用

$ tar xvjf fceu-0.98.12.src.tar.bz2 // 解包

$ mv fceu fceu-0.98 // 改目錄名為 包名-版本号

$ cd fceu-0.98

$ dh_make -s -e xieyan08[email protected] -f ../fceu-0.98.12.src.tar.bz2 // 生成制作deb包所需的預設資訊

此時目前目錄下生成了debian目錄,此時通常修改兩個檔案:

修改debian/control檔案,配置你的資訊,具體字段見參考部分

修改debian/rules腳本,它決定編譯參數(也可以不改)

$ dpkg-buildpackage -rfakeroot

此時可以看到,上層目錄中已建立了deb包

5. 方法三: 修改已有deb包

自己建立deb所需目錄結構(控制資訊和安裝内容),然後打包,一般使用這種方法來修改已有的deb包,而不是建立deb包,指令如下:

$ dpkg -X xxx.deb test // 解包安裝内容

$ cd test

$ dpkg -e ../xxx.deb // 解包控制資訊

修改其中内容

$ cd ../

$ dpkg -b dirname xxx_new.deb // 重新打包

三、參考

1. debian/control檔案中資訊說明

1) Package 包名

2) Version 版本

3) Architecture 目标機架構(i386, arm等)

4) Maintainer 維護者

5) Depends 依賴軟體包

6) Description 描述

2. checkinstall詳細例程

linux/l-cn-checkinstall/index.html">http://www.ibm.com/developerworks/cn/linux/l-cn-checkinstall/index.html

3. 自己制作deb包例程

http://blog.chinaunix.net/u2/78998/showart.php?id=1404403

4. 官方的debian制作手冊(比較長)

http://www.debian.org/doc/manuals/maint-guide/index.zh-cn.html