Chinaunix首页 | 论坛 | 博客
  • 博客访问: 72185
  • 博文数量: 26
  • 博客积分: 2825
  • 博客等级: 少校
  • 技术积分: 302
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-19 13:27
文章分类

全部博文(26)

文章存档

2009年(26)

我的朋友

分类: LINUX

2009-04-20 21:14:04

Debian软件包由dpkg软件包管理工具制作。dpkg遵循由一个单独的文本文件所指定的一系列指令。在基于debian的系统中,如果你使用如下命令:

apt-get source msn-pecan

从下载下来的msn-pecan目录中,看到有个debian目录,该目录主要包含两个重要文件,control文件和打包规则文件rules,其中control该文件主要包括:

Depends:指定必须先安装的软件包,因为当前软件包依赖该包,如gtk应用程序必须依赖gtk+-2.0,该项用于避免造成严重的系统损坏。

Suggests: 可以认为是可要可不要的软件包


Conflicts:表示如果安装当前软件包必定不能与这个特定的软件包同时。例如,安装Pidgin软与gaim软件相冲突。
 
Provides:Debian 有时会定义虚拟软件包或不存在的软件包,它提供了一种友好的方式来指向某一特定类型的软件,可能有许多可用的软件都属于这一类型。这有助于用户寻找一个现 有的软件包或一个著名的软件包在最新的Debian版本中被转移到了哪里,而不需要用户理解这背后的策略。

创建一个单独的Debian软件包的过程是非常简单易懂的,这要感谢Debian的自动化帮助脚本。在本例中,给定一个已有的源代码项目,我们可以 通过在命令行中使用dh_make来创建一个新的软件包。例如,我们将从google souce 上下载下来的 msn-pecan-0.18.tar.bz2 拷贝到一个新的目录中

bunzip2 -d msn-pecan-0.18.tar.bz2

tar -xvvf msn-pecan-0.18.tar

并以msn-pecan-0.18作为一个全 新的Debian软件包的基础。进入msn-pecan-0.18目录

# dh_make -e dalashan@gmail.com -f ../msn-pecan-0.18.tar.gz

此时系统会问你想创建哪种类型的软件包:

Type of package:single binary,multiple binary,library,kernel module or cdbs?

[s/l/m/k/b]

一般来说,大都情况下我们都是为了创建一个单独的二进制软件包,所以选择选项“s”(其他类型更为复杂,详细信息请查看dh_make的相关文档)。

Maintainer name : root
Email-Address   : dalashan@gmail.com
Date            : Mon, 20 Apr 2009 16:29:11 +0800
Package Name    : msn-pecan
Version         : 0.18
License         : blank
Type of Package : Single
Hit to confirm:
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the msn-pecan Makefiles install into $DESTDIR and not in / .

此时你会发现在源码目录中多了一个debian目录。

# cd debian

# ls

changelog  dirs                init.d.ex        menu.ex                preinst.ex
compat     docs                init.d.lsb.ex    msn-pecan-default.ex   prerm.ex
control    emacsen-install.ex  manpage.1.ex     msn-pecan.doc-base.EX  README.Debian
copyright  emacsen-remove.ex   manpage.sgml.ex  postinst.ex            rules
cron.d.ex  emacsen-startup.ex  manpage.xml.ex   postrm.ex              watch.ex

你会发现一下多了,很多文件,这些都是dh_make生成的,可以根据你需要打包的情况,修改control文件,rules文件。我一般都是将*.ex 文件全部的删除掉。为了记录每次修改源码的记录,建议修改changelog文件,其修改格式务必保持如下:

msn-pecan (0.0.18-0~hardy1) hardy-backports; urgency=low

  * dalashan cross compile.

 -- dalashan   Mon, 20 Apr 2009 15:53:06 +0800

(注:后面的日期字符串,你可以在命令行下使用 date -R 得到)

好了,dh_make相关工作到此,下面就可以使用:

#dpkg-buildpackage -rfakeroot -b(只生成二进制包) -tc(打包完毕后进行clean操作)

最后,你可以使用dpkg -c x.deb 来查看生成的软件包里包含哪些文件。使用 sudo dpkg -i *.deb 来安装软件。

阅读(5007) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~