ubuntu deb包制作例程

下面是使用 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 / .

还有两个重要的提示:

  • Please edit the files in the debian/ subdirectory now.
  • You should also check that the hellodeb Makefiles install into $DESTDIR and not in / .

7. 我们先关注一下第二个提示,修改Makefile。这里主要是安装路径,修改如下:

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这个生成的目录了

 这个目录下面的文件很多,不能一一解释。这里列举几个重要的,也是绝大部分软件必须的:

  • control文件: 声明很多重要的变量,dpkg通过这些变量来管理软件包
  • copyright文件: 不用说,版权信息,相当重要
  • changelog文件: 这是一个必需文件,包含软件版本号,修订号,发行版和优先级。
  • rules文件: 这实际上是另外一个Makefile脚本,用来给dpkg-buildpackage用的.
  • compat文件: 这个文件留着是有用的
  • dirs文件:这个文件指出我们需要的但是在缺省情况下不会自动创建的目录
可根据自己的需求修改此目录下的文件

9.所有的准备工作都就绪了。我们可以build软件包。dpkg-buildpackage -rfakeroot 

10. 创建完成后,在该目录的上级目录应该得到如下几个文件:

  • hellodeb_1.0-1.tar.gz: 源码包
  • hellodeb_1.0-1.dsc: 源代码总结,根据control文件创建,包含GPG签名
  • hellodeb_1.0-1_solaris-i386.deb: 完整的二进制包,可用dpkg管理
  • hellodeb_1.0-1_solaris-i386.changes: 供dput使用
可用dpkg -c查看包内容检查是否正确

你可能感兴趣的:(ubuntu deb包制作例程)