Linux下deb包的製作方法
-
使用deb包
-
查看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)deb包通常包含兩部分:控制信息(DEBIAN目錄)、安裝內容(模擬root目錄)
2)通過解開已有的deb包看其中內容
i.釋放安裝內容到dirname目錄中
$dpkg -X xxx.deb dirname
ii.釋放控制信息到當前目錄下的DEBIAN子目錄中
$dpkg -e xxx.deb
-
安裝打包工具
apt-getinstall dh-make checkinstall
-
使用checkinstall打包
在源代碼的目錄下創建Makefile文件。格式按照Makefile的規定格式,例如:
PROG=hello
CC=gcc
BINDIR=/usr/bin
INSTALL=cp
hello:hello.c
$(CC)-o $(PROG) hello.c
clean:
rm-f $(PROG)
install:
$(INSTALL)$(PROG) $(BINDIR)
uninstall:
rm-rf $(BINDIR)/$(PROG)
checkinstall就是在make後,取代makeinstall這個步驟,生成deb包。在make以後,輸入checkinstal,然後會出現:
Thepackage documentation directory ./doc-pak does not exist.
ShouldI create a default set of package docs? [y]:
的提示,選y,自己輸入deb包的描述,輸入一個空行結束
然後會出現
0- Maintainer: [ jarlyyn@Home ]
1- Summary: [ Package created with checkinstall 1.6.0 ]
2- Name: [ syncevolution ]
3- Version: [ 0.4 ]
4- Release: [ 1 ]
5- License: [ GPL ]
6- Group: [ checkinstall ]
7- Architecture: [ i386 ]
8- Source location: [ syncevolution-0.4 ]
9- Alternate source location: [ ]
10- Requires: [ ]
按需要選取相應數字編輯你需要改變的項目,當然,如果你什麼都不需要改變也可以
然後輸入回車,開始生成deb包。
-
使用dh_make創建deb包
-
下載的源代碼包
$tar xvjf xxx.tar.bz2 //解包
$mv xxx xxx-0.98 //改目錄名爲包名-版本號
$cd xxx-0.98
$dh_make -s -e [email protected] -f ../xxx-0.98.tar.bz2 //生成製作deb包所需的默認信息
此時當前目錄下生成了debian目錄,此時通常修改兩個文件:
修改debian/control文件,配置你的信息,
1)Package包名
2)Version版本
3)Architecture目標機架構(i386,arm等)
4)Maintainer維護者
5)Depends依賴軟件包
6)Description描述
修改debian/rules腳本,它決定編譯參數(也可以不改)
$dpkg-buildpackage -rfakeroot
此時可以看到,上層目錄中已建立了deb包
-
自己的項目
使用autoconf和automake來創建Makefile文件(詳細步驟見其他文檔)
進入項目文件夾
$dh_make -s -e [email protected] -f ../xxx-0.98.tar.bz2 //生成製作deb包所需的默認信息
$dpkg-buildpackage -rfakeroot
製作的deb包使用dpkg–i xxx.deb安裝。