[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ 下一页 ]
这篇文章为普通的Debian用户和希望能够对Debian安装包有所了解的开发人员讲述 了制作Debian安装包的方法。它使用了非常通用的语言,并且通过一个可以工作的 例子进行了演示。有一句古老的罗马谚语说的好:Longum iter est per preaecepta, breve et efficax per exempla!(通过理论要讲述很久的问题, 可以很快地用例子说明白。)
Debian能够成为一个高质量的Linux发行版的重要原因之一就是它的安装包系统。 尽管已经存在相当大量的用Debian格式打包的软件,有时你还是需要安装一些不是 这一格式的软件。可能你会为如何制作自己的安装包而彷徨,而且也许你会认为这 是一个非常困难的任务。是的,如果你是一个Linux初学者,那么这的确很难,不过 如果你真的是一个新手,现在你也就不会来读这个文档了。:-) 你的确需要 对Unix的编程有所了解,但你并不需要是这方面的天才。
有一件事情是非常明确的:如果你希望创建并维护一个Debian的安装包,那将花费 你数个小时的时间。作为一个维护人员,为了能够不犯错误,让我们的系统很好地 工作,必须有良好的技术基础且非常勤奋。
这篇文档将会讲述每一个细节(开始时也许给人感觉毫不相关)的步骤,并且帮助你 创建第一个安装包,从而让你学习到可以帮助你制作它的下一个版本或者其它安装 包的经验。
这个文档的更新版本可以在http://www.debian.org/doc/maint-guide/
和“maint-guide
”安
装包中找到。这个文档的中文翻译版本也可以在“maint-guide-xy
”安装
包中找到。
在开始之前,你需要确认你是否已经正确安装了一些附加的在开发时需要的安装 包。注意这里列出的软件都没有标记为“essential”或者是“required”——我们希望 你能够安装好这些软件。
这个文档的当前版本已经为Debian 2.2(“potato”)和3.0(“Woody”)更新过了。
下面列出的这些软件在Debian的标准安装中已经有了,因此它们在你的机器上应 当已经安装好了(也包括它们依赖的其它软件包)。然而,你还是应该 用“dpkg -s <package>”来检查一下。
dpkg-dev
- 这个软件包包括了在解开、制作、上传Debian源文件包时
需要用到的工具。(参考dpkg-source(1)
)
file
- 这个小程序可以检测文件的类型。(参考 file(1)
)
gcc
- GNU C语言编译器,如果你的程序是和其它很多程序一样用C语
言编写,那么就需要这个软件包。(参考 gcc(1)
)这 个软件包还会“pull
in”其它几个软件包,比如包括汇编(assemble)和链
接(link)目标文件的程序的软件包binutils
(参
考binutils-doc
软件包中的“info binutils”)和C预处理
器(preprocessor)cpp
(参考cpp(1)
)。
g++
- GNU C++语言编译器,如果你的程序是用C++语言写的那就需要
它。(参考g++(1)
)
libc6-dev
- gcc需要的用于链接和创建目标文件的C函数库和头文
件。(参考glibc-doc
软件包中的“info libc”)
make
- 通常创建一个程序的过程需要经过好几步,为了能够不把同样
的命令一遍又一遍的输入,你可以用这个程序通过创建“Makefile”来使这个过程
自动化。(参考“info make”)
patch
- 这是一个非常有用的工具,它可以把(用diff程序生成的)包
含有一个差别清单的文件应用到原先的文件上去,从而生成一个补丁版本。(参
考patch(1)
)
perl
- Perl是在当今的Unix类系统上应用得非常广泛的解释型脚本语
言之一,它通常被称作“Unix的瑞士军刀”。(参考 perl(1)
)
你也很可能会想要安装下面的软件包:
autoconf
和automake
- 很多新的程序在这一类工具的帮助
下来配置脚本文件并对Makefiles进行预处理。(参考“info autoconf”和“info
automake”)
dh-make
和debhelper
- 在例子中创建我们的软件包时需要
使用dh-make来创建它的骨架,并且要使用到一些debhelper软件包中的工具。他
们对于创建软件包不是最基本的,但对于新的维护者则是强
烈推荐使用的。它们使得整个过程的开始变得很容易且使后续的过程容
易控制。(参考dh_make(1)
、debhelper(1)
和/usr/share/doc/debhelper/README)
devscripts
- 这个软件包中包括了一些非常好的且很有用的脚本程
序,它们对于维护者是很有用的,但它们对创建软件包也不是必需的。(参
考/usr/share/doc/devscripts/README.gz)
fakeroot
- 这个工具使你可以模拟变成root用户,这在创建软件包的
过程的一些部分是必要的。(参考fakeroot(1)
)
gnupg
- 一个可以让你对你制作的软件包进行数字签名的工
具。如果你希望把它发布给其他人,这个步骤是非常重要的,并且当你所做的工
作被加入到Debian发行版中时就必需进行这一步。(参考gpg(1)
)
g77
- GNU Fortran 77语言编译器,如果你的程序是用Fortran语言编
写的就需要它了。(参考g77(1)
)
gpc
- GNU Pascal语言编译器,如果你的程序是用Pascal语言写的,
就需要它了。这里值得一提的是软件包fp-compiler
,自由Pascal编
译器(the Free Pascal Compiler),它也是一个完成这一任务的好选择。(参
考gpc(1)
和ppc386(1)
)
xutils
- 一些程序,通常是为X11编写的程序,也使用这些程序通过
一套宏来生成Makefile文件。(参考imake(1)
和xmkmf(1)
)
lintian
- 这是一个Debian软件包检查器,它可以在你创建软件包后
为你找出一些常见的错误,并解释这些错误。(参考lintian(1)
和/share/doc/lintian/lintian.html/index.html)
linda
- 这是另一个Debian软件包检查器。(参考linda(1)
)
pbuilder
- 这个软件包中包含了用于创建和维护chroot环境的程
序。在此chroot环境中构建Debian可以检查构建软件包的依赖关系的正确性并防
止FTBFS错误发生。(参考pbuilder(8)
和pdebuild(1)
)
下面列出的这些文档都非常重要,你在阅读本文档时也应当阅读它们:
debian-policy
- 政策(Policy)文件中包含了对很多内容的解释,比
如Debian档案的结构及内容、几个关于操作系统设计的问题、文件系统层次标
准(讲述了每个文件和目录应该存在的地方)等等。对你来说,最重要的是它描述
了在加入每个软件包到发行版中时,它们必须满足的要求。(参考/usr/share/doc/debian-policy/policy.html/index.html)
developers-reference
- 包含了全部的参考资料,其内容不只是打包
软件的技术细节,比如文档的结果、如何改名、孤儿、选择软件包、如何做NMUs、
如何管理bugs、最佳打包实践以及在什么时间将软件包上传到什么位置等等。(参
考/usr/share/doc/developers-reference/index.en-us.iso-8859-1.html)
上面的简短描述只是对每一个软件包进行了一下简单的介绍。在继续后面的工作 前,请完整的阅读每一个程序的文档,至少要了解基本的用法。现在看来也许是 很繁重的任务,不过以后你会非常高兴的去阅读它们的。
注意: debmake
软件包中包含了一些和dh-make作用相似的程序,但它
的详细用法并没有包含在这份文档中,因为它已经不推
荐使用了。要得到更多的信息,请参考the Debmake manual
。
你可以制作的软件包有两种,源文件版本和可执行版本。源文件版本的软件包包 含了可以被编译成程序的源代码。可执行版本的软件包只包含编译好的文件。不 要把程序源文件和程序的源文件版本软件包混在一起!如果你需要更详细的关于 这些词汇的资料,请参考阅读其它的手册。
在Debian中,“维护者(maintainer)”一词指的是制作软件包的人,“上游作 者(upstream author)”指的是编写程序的人,而“上游维护 者(upstream maintainer)”是指在Debian项目之外维护着程序的人。通常情况下 作者和上游维护者是同一个人——有时维护者甚至也是同一个人。如果你编写了一 个程序并且希望它被包含到Debian中,那么你可以提交你的程序从而成为一个维 护者。
在你创建了你的软件包(或则正在做这件事情),若你希望它能够被加入到下一个 发行版中(如果你的程序非常有用,为什么不呢?),那么你必须成为一个正式 的Debian维护者。这一过程在开发人员参考(Developer's Reference)中解释了。 请阅读它。
[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ 下一页 ]
Debian新维护人员手册
version 1.2.3, 2005年4月3日.joy-mg@debian.org
lilingv@gmail.com
ycheng@slat.org