[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ 下一页 ]


Debian新维护人员手册
第 2 章 - 第一步


2.1 选择你的程序

你大概已经选好了你要制作的软件包。首先要做的事情是检查它是否已经在发行 版中了。如果你使用的是“稳定”发行版,那么你最好到软件包查询页面查一 下。如果你使用的是当前的“不稳定”发行版,可以用下面的命 令来检查:

       dpkg -s program
       dpkg -l '*program*'

如果软件包已经存在了,那么好,安装它!:-) 如果他碰巧是个孤儿——如果它的 维护者成为了“Debian QA Group”的成员,你就应该可以重新维护它。查询孤儿软件包列表打算收养的软件包列表可以确认软件包是否 真的需要领养。

如果你获准收养一个软件包,那就获取它们的源代码(用apt-get source packagename一类的命令)并检查它们。很不幸,这份文档中并不包含关于收养软 件包的详细信息。值得庆幸的是,在收养软件包时,你不用花费很多时间在找出 如何让其工作,因为已经有人为你做了初始的设置工作。尽管如此,也请继续读 下去,下面的很多建议也会对你所处的情况有用。

如果软件包是新的,并且你已经决定让它出现在Debian中,请按照下面的步骤来 做:

当然,这些问题都是只是为了安全,并试着让你不至于在比如setuid的守护进程 等问题上犯错误而激怒了用户。当你有了在打包软件方面的更多经验时,你就可 以处理那种软件包了,但即便是富有经验的开发人员在他们疑惑时也会发邮件 到debian-mentors邮件列表咨询。那里的人们会很乐意提供帮助的。

要获得关于这些内容的更多帮助,请参考开发者参考手册。


2.2 获得程序,并且试用它

第一件要做的事情就是找到并下载原始的软件包。我假定你已经从作者的主页上 找到它的源文件了。免费的Unix程序的源文件通常是以tar/gzip格式提供的,它 的文件扩展名是.tar.gz,并且通常还包含了以program-version形式命名的子 目录,里面放着全部的源文件。如果你的程序源文件是以一些其它的形式提供 的(比如,文件名是以“.Z”或“.zip”结尾的),那么就用适当的工具把它解包,或 者如果你不清楚应当如何正确把它解包,就在debian-mentors邮件列表上问一 下。(提示:可以用命令“file archive.extension”)

作为一个例子,我将会使用程序“gentoo”,它是一个基于X GTK+的文件管理器。 需要注意的是,这个程序已经被打包好了,并且从写这篇文档之初到现在它已经 发生了很大的变化。

在你的home目录中创建一个名为“debian”或者“deb”或者任何你喜欢的名字的目 录(比如在这个例子中~/gentoo/就可以了)。把下载的文件放到这个目录中,然后 将其解包(用命令“tar xzf gentoo-0.9.12.tar.gz”)。确认在这个过程中没有发 生错误,即便是一点“不恰当”的也不行,因为当在别人的系统上解包这些文件的 时候,如果它们的工具并不忽略这些反常的现象,那就会有了。

现在又有了一个新的子目录,名叫“gentoo-0.9.12”。进入这个目录并且彻 底的读完其中的文档。通常情况下在目录里面会有名 叫README*、INSTALL*、*.lsm或者*.html的文件。你必需找到如何正确编译并安 装程序的指导。(最有可能的是它们会假设你希望把程序安装到/usr/local/bin目 录中;你不需要这样做,但在后面的在一个子目录中安装, 第 3.1 节中需要做很多事情。)

安装的过程对于不同的软件是不同的,但很多现代的程序都带有一个“configure” 脚本文件,这个文件配制你系统上的源文件,并确认你的系统已经可以编译它了。 在通过“./configure”命令配制之后,通常可以通过“make”来编译程序。有一些程 序还会支持通过“make check”命令来进行自检。把程序安装到目标目录中的命令 通常是“make install”。

现在可以试着编译并运行你的程序了,从而确定它可以很好的工作并且在它安装 或工作时不会破坏其它程序的运行。

另外,通常你还可以通过“make clean”(或者更好的“make distclean”)命令来清 理build目录。有时还会有一个“make uninstall”命令来删除所有已经安装的文件。


2.3 软件包名称和版本

在开始打包时,源程序目录应当是绝对干净(原始)的,或者直接从刚刚解包的源 代码目录开始。

为了让软件包能够正确地制作,你必须把程序原有的名字改成小写(如果它不是 的话),并且你应该把源代码目录的名字改 成<packagename>-<version>的形式。

如果程序的名字是由多于一个的英文单词组成的,那就把它改成一个单词,或者 缩写的形式。例如,程序“John's little editor for X”软件包可以改 成johnledx或者jle4x,或者随便什么你认为合适的,只要它符合一些很合理的 限制,比如在20个字符以内。

另外要做的一件事情就是检查一下被包装在软件包里的程序的精确版本号(它将被 包含在软件包的版本号中)。如果包装的软件并不是以X.Y.Z的方式来命名它的版 本的,而是用比如日期一类的方式,那么就用那个日期来做版本号好了,只要在 前面加上“0.0.”就可以了(直到上游的人决定发布一个好的版本比如1.0等时候)。 因此,如果发行版或者snapshot的日期是1998年12月19日,你就可以使 用0.0.19981219作为版本号。

有一些程序根本就没有数字的版本,在这种情况下,你就需要和上游维护者取得 联系,看看他们是不是使用了什么别的版本跟踪方法。


2.4 首次“Debian化”

确定你在程序的原代码目录中,然后执行这个命令:

       dh_make -e your.maintainer@address -f ../gentoo-0.9.12.tar.gz

当然,要用你的E-mail地址换掉字符串“your.maintainer@address”,并用你的源 代码文档的名字替换掉上面的文件名。你的这个E-mail地址将会被包含在changlog 项目和其它的文件中。参考dh_make(1)获得详细的信 息。

在执行这个命令后,你将会看到一些信息,它会问你你需要创建那种类型的软件 包。Gentoo是一个单二进制软件包——它只创建一个二进制形式的软件包,也就是 说只有一个.deb文件——所以我们按“s”键选择第一个选项,检查屏幕上的信息, 然后按<enter>键确认。

在此次运行dh_make之后,上游的软件包将会被打包 为gentoo_0.9.12.orig.tar.gz并放在父目录中,以便 用diff.gz创建非Debian固有的源代码包。请注意文件名中的两个 关键点:

再说一下,作为一个新的维护者,我们不鼓励你创建复杂的软件包,譬如:

要说清这些问题并不是很难,但你确实需要了解更多一些的知识,因此在这里讲述关 于它们的全部内容。

请注意你只能运行一次dh_make程序,如果你再 次在同一个已经“Debian化”的目录中运行它,它将不能正常运行。这也意味着当 你要发布你的软件的下一个版本时,你需要使用一些不同的方法。以后你会在 更新软件包, 第 9 章一部分中读到更多关于这个问题的内容。


[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ 下一页 ]


Debian新维护人员手册

version 1.2.3, 2005年4月3日.

Josip Rodin joy-mg@debian.org
中文版翻译:李凌 lilingv@gmail.com
中文版翻译:郑原真 ycheng@slat.org