在ubuntu中打包deb包

公司要使用deb包发布产品,具体原因不明,可能是由于deb格式安装包又经常会涉及到系统较底层的操作,对Unix类系统对权限、所有者、组的严格要求吧!

不论,先来了解下什么是deb?
Debian包是Unixar的标准归档,将包文件信息以及包内容,经过gzip和tar打包而成。
处理这些包的经典程序是dpkg。
deb包本身有三部分组成:
数据包,包含实际安装的程序数据,文件名为test.tar.xxx;
安装信息及控制脚本包,包含deb的安装说明,标识,脚本等,文件名为control.tar.gz;
最后一个是deb文件的一些二进制数据,包括文件头等信息,一般看不到,在某些软件中打开可以看到。

如何制作?
我使用dpkg方法。
首先制作bz2包
tar -cjf test_150713.tar.bz2 test

创建deb子文件夹,并copy压缩包bz2到deb子中
cp test_150713.tar.bz2 deb

解压bz2包
tar xvjf test_150713.tar.bz2

改目录名为,格式(包名-版本号)
mv test_150713 test-1.0
cd test-1.0

生成制作deb包所需的默认信息
dh_make -s -e [email protected] -f ../test_150713.tar.bz2

此时当前目录下生成了debian目录,此时通常修改两个文件:
修改debian/control文件,配置信息,具体字段见参考部分
修改debian/rules脚本,编译参数(可不改)
打包deb
dpkg-buildpackage -rfakeroot -b -uc

这里 '-rfakeroot' 指定命令使用 fakeroot 程序来模仿 root 权限 (来实现所有者(ownership)目的),'-uc' 表示 "Don't cryptographically sign the changelog", '-b' 代表只建立二进制包.
此时,上层目录中deb包已建立好了

参考
1. debian/control文件中信息说明
1) Package 包名
2) Version 版本
3) Architecture 目标机架构(i386, arm等)
4) Maintainer 维护者
5) Depends 依赖软件包
6) Description 描述

------------查看包信息------------------
dpkg -c test-2.0.1.0.deb
------------直接打包--------------------
dpkg-deb --build test-2.0.1.0/

猜你喜欢

转载自lesorb.iteye.com/blog/2226967
今日推荐