下面是使用 dpkg包管理系统制作deb包的过程(站在前人的肩膀上做的修改,已在ubuntu 12.10下验正)
1、新建一个工作目录
mkdir deb
2、新建我们程序的目录
mkdir hellodeb
cd hellodeb
3、编写我们的程序
hellodeb.c代码如下
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("Hello Debian!\n");
return 0;
}
Makefile文件如下:
CC=gcc
TARGET=hellodeb
OBJS=hellodeb.o
BINDIR=/usr/bin
all:$(OBJS)
$(CC) -o $(TARGET) $(OBJS)
install:
cp $(TARGET) $(BINDIR)
clean:
rm -f *.o hello
.PHONY:all clean
4.文件名必须包含文件名和版本号
mv hellodeb hellodeb-1.0
说明:文件名后必须用-,不能用_
5、进入我们的hellodeb-1.0目录
cd hellodeb-1.0
6、我们需要dh_make工具进行打包前的配置,如果是第一使用请先安装dh-make
dh-make安装方法:sudo apt-get install dh-make
安装好后执行:dh_make -e [email protected] --createorig
上面任一命令后都会出现,一下内容:
Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs?
[s/i/m/l/k/n/b]
我们输入s
Maintainer name : robin
Email-Address : [email protected]
Date : Sun, 21 Apr 2013 16:04:06 +0800
Package Name : hello
Version : 1.0
License : blank
Type of Package : Single
Hit <enter> to confirm:
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the hello Makefiles install into $DESTDIR and not in / .
还有两个重要的提示:
CC=gcc
TARGET=hellodeb
OBJS=hellodeb.o
BINDIR=$(DESTDIR)/usr/bin
all:$(OBJS)
$(CC) -o $(TARGET) $(OBJS)
install:
mkdir $(BINDIR)
cp $(TARGET) $(BINDIR)
clean:
rm -f *.o hello
.PHONY:all clean
第一个修改是为了在build包的时候能够把需要的文件安装到正确的目录,从而正确的包含在生成的deb包中。
第二个修改是因为修改后的BINDIR变量的目录并不存在,所以需要手动创建。
8. 然后我们要看一下debian这个生成的目录了
这个目录下面的文件很多,不能一一解释。这里列举几个重要的,也是绝大部分软件必须的:
9.所有的准备工作都就绪了。我们可以build软件包。dpkg-buildpackage -rfakeroot
10. 创建完成后,在该目录的上级目录应该得到如下几个文件: