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


Debian新維護人員手冊
第 5 章 - debian/中的其它檔案


你會看到在debian/子目錄中還有幾個已經存在的檔案,它們大多數都是以“.ex”結 尾的,表明它們只是例子。仔細看一下它們。如果你希望使用其中任何一個功 能,你需要做的事情是:

在下面給出了一些經常會被用到的檔案的解釋。


5.1 README.Debian

所有的在原來的套裝軟體和你的debian版本的套裝軟體之間的細節及差异需要寫在這裡。

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

關於軟體,有一件事情是很煩人的,那就是當你花費了很多的時間和精力訂製好 一個程式,只要一升級,你所有的訂製就都會被丟棄了。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 messagein 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檔案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 ] [ A ] [ 下一頁 ]


Debian新維護人員手冊

version 1.2.3, 2005年4月3日.

Josip Rodin joy-mg@debian.org
華文版翻譯:李凌 lilingv@gmail.com
華文版翻譯:鄭原真 ycheng@slat.org