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 webberWei@itspiderman.com -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 webberWei@itspiderman.com -f ../xxx-0.98.tar.bz2 //生成制作deb包所需的默认信息
$dpkg-buildpackage -rfakeroot
制作的deb包使用dpkg–i xxx.deb安装。