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

Debian新维护人员手册
第 5 章 - debian/中的其它文件


你会看到在debian/子目录中还有几个已经存在的文件,它们大多数都是以 `.ex'结尾的,表明它们只是例子。仔细看一下它们。如果你希望使用其中任何一 个功能,你需要做的事情是:

在下面给出了一些经常会被用到的文件的解释。


5.1 README.Debian

所有的在原来的软件包和你的debian版本的软件包之间的细节及 discrepancies需要写在这里。

dh_make创建了一个缺省的,如下所示:

       gentoo for Debian
       -----------------
     
       <possible notes regarding this package - if none, delete this file>
     
        -- Josip Rodin <joy-mg@debian.org>, Wed, 11 Nov 1998 21:02:14 +0100

由于我们不需要在这里写任何东西,我们就把它删掉了。


5.2 conffiles.ex

关于软件,有一件事情是很烦人的,那就是当你花费了很多的时间和精力定制 好一个程序,只要一升级,你所有的定制就都会被stomp了。Debian解决这个问题 的方法是标注出配制文件,这样当你升级一个软件包时,你将会被询问是否要保 留你原来的配制文件。

如果希望对让一个软件包可以做到这点,只要把每一个配制文件(通常在 /etc)目录下的完整路径逐行加入到一个名叫conffiles的文件里面就可以 了。Gentoo有一个配制文件,/etc/gentoorc,我们把他加入到文件conffiles 中。

如果你自己的程序有一个配制文件并且会自己覆盖它,那么最好就不要把它标 记为配制文件了,因为这样dpkg就总会会询问用户是否要修改它。

如果你的软件包总要求每个用户修改自己的配制文件,最好也不要把配制文件 标记出来了。

你可以用用`maintainer scripts'来处理例子配制文件,要了解更多的信息请 参考postinst.ex, preinst.ex, postrm.ex, prerm.ex, 第 5.12 节

如果你的程序根本没有conffiles,对你来说从debian/目录中删除conffiles 就是很安全的了。


5.3 cron.d.ex

如果你的软件包需要计划任务正常运行才能够正常操作,你可以在这个文件中 设置它。

注意这里并不包括定期清除日志的任务;关于它,请参考 dh_installlogrotate(1)logrotate(8)

如果你不需要,那就把它删了吧。


5.4 dirs

这个文件里指出了我们需要的但常规的安装过程(make install)并不会自动创 建的目录。

缺省情况下,它的内容如下所示:

       usr/bin
       usr/sbin

注意最前面是没有斜线的。我们通常把它改成下面的样子:

       usr/bin
       usr/man/man1

但这些目录在Makefile中已经创建了,所以我们不需要这个文件,并且打算把 它删了。


5.5 docs

在这个文件中,我们可以指定一些让dh_installdocs帮我们安装到临时目录中 的文档的文件名。

缺省的情况下,他会包含所有已经存在于源代码目录最高层目录中的名为 "BUGS"、"README*"、"TODO"等的文件。

对于gentoo,我们还加入了一些其它的内容:

       BUGS
       CONFIG-CHANGES
       CREDITS
       ONEWS
       README
       README.gtkrc
       TODO

我们可以删掉这个文件,取而代之的是在rules文件中的 dh_installdocs命令后列出这里提到的文件的名字,如下所示:

               dh_installdocs BUGS CONFIG-CHANGES CREDITS ONEWS README \
                            README.gtkrc TODO

也许并不像你看到的这样,你自己的软件包可能根本就没有这些文件。在这种 情况下,对你来说删掉这个文件是很安全的。但是不要删掉rules文件中的 dh_installdocs,因为它还要被用于安装copyright和其它的一些东西。


5.6 emacsen-*.ex

如果你的软件包提供了一些可以在安装时进行字节编译的Emacs文件,你可以 使用这些文件来设置它们。

通过命令dh_installemacsen(1)可以把它们安装到临时文件 中,所以如果你要使用它不要忘了去掉rules文件中那一行上的注释。

如果你不需要这些,删掉它们。


5.7 init.d.ex

如果你的软件包是一个需要在系统启动时运行的守护程序,那么很显然你没有 采纳我在开始时的建议,不是吗? :-)

这是一个/etc/init.d/脚本的通用骨架,所以你不得不对它进 行大规模的修改。通过dh_installinit(1) 可以把它安装到临时目录中。

如果你不需要这些,删掉这个文件。


5.8 manpage.1.ex, manpage.sgml.ex

你的程序应该有一个手册页。如果它们没有,这里的每一个文件都是一个模 板,你只要把它填好就可以了。

手册页通常用nroff(1)写成。manpage.1.ex 这个例子也使用nroff写的。在man(7)的手册页中可 以找到一个关于如何编写这样一个文件的简短说明。

如果你更希望些SGML而不时nroff,那么你可以使用manpage.sgml.ex模 板。如果是这样,那么你就必需做下面这些事情:

另外还要记得把文件名改成类似于gentoo.sgml的样子!

最后,手册页文件的名字应该包含它所描述的程序的名字。所以我们需要把 "manpage"改成"gentoo"。这个文件明中还以一个".1"作为后缀,这表明它是一 个关于用户命令的手册。一定要确保这个节编号是正确的。这里有一个关于手册 页各个节的简短列表:

       Section |     Description     |     Notes
          1     User commands          Executable commands or scripts.
          2     System calls           Functions provided by the kernel.
          3     Library calls          Functions within system libraries.
          4     Special files          Usually found in /dev
          5     File formats           E.g. /etc/passwd's format
          6     Games                  Or other frivolous programs
          7     Macro packages         Such as man macros.
          8     System administration  Programs typically only run by root.
          9     Kernel routines        Non-standard calls and internals.

所以gentoo的手册页应该叫做gentoo.1。对于X的程序,你可以在原来的 节编号后面加上一个"x",例如gentoo.1X。在原来的源程序中,并没有 gentoo.1的手册页,所以我利用例子和上游文档给出的信息写了一个。


5.9 menu.ex

X窗口系统的用户通常都会使用支持菜单的窗口管理器,这些菜单可以被定制 用于启动程序。如果它们安装了Debian的menu软件包,那么系统就会 创建一套包含有系统上每一个程序的菜单。

这里有一个缺省的由dh_make创建的menu.ex文件:

       ?package(gentoo):needs=X11|text|vc|wm section=Apps/see-menu-manual\
         title="gentoo" command="/usr/bin/gentoo"

在冒号之后的第一个字段是"needs",他指明了程序需要什么样的界面。可以 把这个字段改成一个合适的值,比如"text"或者"X11"。

下面是"section",它指出这个项目应当出现的菜单和子菜单。当前的可选节 被列在文件/usr/share/doc/debian-policy/menu-policy.html/ch2.html#s2.1 中。

"title"字段是程序的名字。如果你喜欢,可以用大写字母开头。但一定要使 他保持简短。

最后,"command"字段用于运行程序。

现在我们要把菜单项改成下面的样子:

       ?package(gentoo): needs=X11 section=Apps/Tools title="Gentoo" command="gentoo"

你还可以加入其它的字段,比如"longtitle"、"icon"、"hints"等。 参考menufile(5)update-menus(1)/usr/share/doc/debian-policy/menu-policy.html/可以了解更多信息。


5.10 watch.ex

这个文件用于配制程序uscan(1)uupdate(1)(在软件包devscripts中)。它们可以用 于监视你下载源代码的站点。

这里是我的配制:

     # watch control file for uscan
     # Site           Directory  Pattern               Version  Script
     ftp.obsession.se  /gentoo   gentoo-(.*)\.tar\.gz  debian   uupdate

提示:在创建了这个文件后,可以连接到Internet,并且试着在程序目录中运 行"uscan"命令。还要读手册哦!:)


5.11 ex.package.doc-base

如果你的软件包还有除了手册页以外的其它普通文档和info文档,你需要使用 `doc-base'文件来注册它们,这样用户就能够用如dhelp(1)dwww(1)或者doccentral(1) 等工具来找到它们。

这通常包括/usr/share/doc/packagename/中的HTML、PS和PDF文件。

gentoo的doc-base文件如下所示:

       Document: gentoo
       Title: Gentoo Manual
       Author: Emil Brink
       Abstract: This manual describes what Gentoo is, and how it can be used.
       Section: Apps/Tools
     
       Format: HTML
       Index: /usr/share/doc/gentoo/html/index.html
       Files: /usr/share/doc/gentoo/html/*.html

关于安装的文件格式,请参考install-docs(8)/usr/share/doc/doc-base/doc-base.html/中的 doc-base手册。


5.12 postinst.ex, preinst.ex, postrm.ex, prerm.ex

这些文件叫做维护者脚本。它们被放在软件包的控制区域中,并且在你的软件 包被安装、升级或删除时由dpkg调用。

现在,你应该尽可能避免修改任何维护者脚本,因为它们有一些复杂。要了解 关于它们的更多信息请参考政策手册的第6章,而且还应该看看dh_make所提供的 例子文件。


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

Debian新维护人员手册

version 1.2, 2002年4月6日.

Josip Rodin joy-mg@debian.org