[ 上一頁 ] [ 目錄 ] [ 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