介绍和制作deb包
3.1 deb包初探
deb包结构包含两部分:
- 控制信息(DEBIAN目录)
- 安装内容(etc、usr等目录)
DEBAIN目录一般包含以下文件:
control
主要描述软件包的名称(Package),版本(Version)以及描述(Description)等,是deb包必须具备的描述性文件,以便于软件的安装管理和索引。同时为了能将软件包进行充分的管理
postinst(postinstallation)
该脚本的主要任务是完成安装包时的配置工作。许多“postinst”脚本负责执行有关命令为新安装或升级的软件重启服务
postrm(postremove)
软件卸载后需要执行的脚本,主要负责修改软件包链接文件、或删除创建的文件
preinst(preinstallation)
在Deb包文件解包之前,将会运行该脚本。 许多“preinst”脚本的任务是停止作用于待升级软件包的服务,直到软件包安装或升级完成
prerm(preremove)
软件卸载前需要执行的脚本,主要负责停止与软件包相关的daemon服务
- copyright(版权)
- changlog(修订记录)
- conffiles
一个control文件实例:
Package: dante
Version: 1.3.2-1
Architecture: amd64
Maintainer: mr-zhao <[email protected]>
Installed-Size: 1438
Depends: libc6 (>> 2.15), libc6 (<< 2.16), libgssapi-krb5-2 (>= 1.10+dfsg~)
Section: unknown #声明软件类别
Priority: extra #软件对系统的重要程度(required、standar、option、extra)
Homepage: <insert the upstream URL, if relevant>
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>
3.2 deb制作
deb包的制作有三种情况:
- 源码包制作deb包
- deb-src包制作deb包
- 修改现有的deb包制作新的deb包
3.2.1 源码包制作deb包
源码包制作deb包一般常用有两种方法:
checkinstall
checkinstall不仅可以生成deb包,还可以生成rpm包,使用简单,但是不灵活,功能粗糙
dpkg工具 dh-make
dpkg是最基本的制作deb包的方法
(1) 利用checkinstall打包
Step 1:安装依赖关系软件包
$ sudo apt-get install build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libgtk2.0-dev libnotify-dev libglib2.0-dev libevent-dev checkinstall
Step 2: 制作DEB包
$ wget http://www.inet.no/dante/files/dante-1.3.2.tar.gz
$ tar zxvf dante-1.3.2.tar.gz
$ cd dante-1.3.2
$ ./configure
$ make
$ sudo checkinstall //以一种交互的方式进行打包,过程会显示软件包基本信息,可直接修改
当前目录下就生成 dante_1.3.2-1_amd64.deb
Step 3: 测试软件包是否可用
$dpkg -i dante_1.3.2-1_amd64.deb //安装
$dpkg -r dante_1.3.2-1_amd64.deb //卸载
(2) 利用dpkg打包
Step 1:安装依赖关系软件包
$ sudo apt-get install dh-make make fakeroot
Step 2: 制作DEB包
$ wget http://www.inet.no/dante/files/dante-1.3.2.tar.gz
$ tar zxvf dante-1.3.2.tar.gz
$ cd dante-1.3.2
$ dh_make -s -e [email protected] -f ../dante-1.3.2.tar.gz //会在当前目录下生成debian目录,可自定义里面的控制信息
$ dpkg-buildpackage -rfakeroot
上级目录就会有 dante_1.3.2-1_amd64.deb
Step 3: 测试软件包是否可用
$ dpkg -i dante_1.3.2-1_amd64.deb //安装
$ dpkg -r dante_1.3.2-1_amd64.deb //卸载
3.2.2 deb-src制作deb包
这种方式往往是需要为原有的包进行小幅度优化,简单介绍一下。
Step 1: 获取source包
$ apt-get source <packagename>
Step 2: 修改代码和编译信息
Step 3: 准备编译环境和依赖包
$ apt-get install dpkg-buildpackage
$ apt-get build-dep <packagename>
Step 4: 重新打包
$ dpkg-buildpackage -uc -d
//完成后上一级目录将会出现一个或多个deb文件 (未测试)
3.2.3 修改现有的deb包制作新的deb包
$ dpkg -X dante_1.3.2-1_amd64.deb test //解包安装内容
$ cd test
$ dpkg -e ../dante_1.3.2-1_amd64.deb //解包控制信息,生成DEBAIN目录
$ ls test
DEBIAN usr
自定义修改内容然后重新打包(一般是对配置文件进行修改,对功能进行调优等)
$ cd ..
$ dpkg -b test test_new.deb
Debain库非常丰富,一般都很少用源码包来制作deb包,通过对已有的deb包进行修改即可满足日常需求