[ 上一頁 ] [ 目錄 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ 下一頁 ]
你大概已經選好了你要製作的套裝軟體。首先要做的事情是檢查它是否已經在發行
版中了。如果你使用的是“穩定”發行版,那麼你最好到套裝軟體查詢頁面
查一
下。如果你使用的是目前的“不穩定”發行版,可以用下面的命
令來檢查:
dpkg -s program dpkg -l '*program*'
如果套裝軟體已經存在了,那麼好,安裝它!:-) 如果他碰巧是個孤兒──如果它的
維護者成為了“Debian QA Group”的成員,你就應該可以重新維護它。查詢孤兒套裝軟體列表
和打算收養的套裝軟體列表
可以確認套裝軟體是否
真的需要領養。
如果你獲准收養一個套裝軟體,那就獲取它們的來源程式碼(用apt-get source packagename一類的命令)並檢查它們。很不幸,這份文件中並不包裝檔含關於收養軟 件包裝檔的詳細資訊。值得慶幸的是,在收養套裝軟體時,你不用花費很多時間在找出 如何讓其工作,因為已經有人為你做了初始的設定工作。盡管如此,也請繼續讀 下去,下面的很多建議也會對你所處的情況有用。
如果套裝軟體是新的,並且你已經決定讓它出現在Debian中,請按照下面的步驟來 做:
到正在製作中的套裝軟體列表
檢查是否沒有其
它人正在為打包裝檔同一個軟體而工作。如果已經有人正在做了,並且你覺得它對你
很重要,就請和他們取得洽詢。否則──找另一個沒人維護的有趣程式吧。
每一個軟體都必須有授權,如果有可能最好是像Debian自由軟體指導方針
中說的那樣屬於自
由軟體。如果它並不遵守這些規則但仍然可以以任意形式發佈,它也還可以被加
入到“contrib”或是“non-free”部分中。如果你不確定它究竟應該被放到哪裡,可
以把它的授權文字發到 debian-legal@lists.debian.org
問一下該怎麼做。
程式的確不應當以setuid root的方式執行,或是最好它應 該不需要setuid或setgid成為其它任何東西。
程式不能是一個背景作業程式,且它不應該放到*/sbin目錄中去,也不該以root身 份開啟一個連接埠。
程式最終應當是二進位可執行的形式,庫處理起來要困難一些。
它應當有很好的文件,最好連來源程式碼也是容易理解的(比如不混亂)。
你應該與程式的作者取得洽詢問一下他是否同意程式被打包裝檔。能夠向作者咨詢 關於程式的任何問題是非常重要的,不要試著去打包裝檔一個沒有人維護的軟體。
最後的但並不是不重要的,你必須知道它確實可以工作並且已經試著使用了一段時間。
當然,這些問題都是只是為了安全,並試著讓你不至於在比如setuid的守護進程 等問題上犯錯誤而激怒了使用者。當你有了在打包裝檔軟體方面的更多經驗時,你就可 以處理那種套裝軟體了,但即便是富有經驗的開發人員在他們疑惑時也會發信件 到debian-mentors信件列表咨詢。那裡的人們會很樂意提供幫助的。
要獲得關於這些內容的更多幫助,請參考開發者參考手冊。
第一件要做的事情就是找到並下載原始的套裝軟體。我假定你已經從作者的首頁上 找到它的來源檔案了。免費的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”命令來刪除所有已經安裝的檔案。
在開始打包裝檔時,來源程式目錄應當是絕對乾淨(原始)的,或是直接從剛剛解開的來源 代碼目錄開始。
為了讓套裝軟體能夠正確地製作,你必須把程式原有的名字改成小寫(如果它不是 的話),並且你應該把來源程式碼目錄的名字改 成<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作為版本號。
有一些程式根本就沒有數位的版本,在這種情況下,你就需要和上游維護者取得 洽詢,看看他們是不是使用了什麼別的版本追蹤方法。
確定你在程式原始碼目錄中,然後執行這個命令:
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原有的來源程式碼包裝檔。請注意檔案名稱中的兩個
關鍵點:
包裝檔名稱和版本是以“_”分割的。
在之前“tar.gz”有“orig.”。
再說一下,作為一個新的維護者,我們不鼓勵你建立複雜的套裝軟體,譬如:
產生多個二進位包裝檔的,
庫套裝軟體,
來源檔案格式不是tar.gz也不是tar.bz2,或是
在來源碼包裝檔中包裝檔含的是不可發佈的內容。
要說清這些問題並不是很難,但你確實需要了解更多一些的知識,因此在這裡講述關 於它們的全部內容。
請注意你只能執行一次dh_make
程式,如果你再
次在同一個已經“Debian化”的目錄中執行它,它將不能正常執行。這也意味著當
你要發佈你的軟體的下一個版本時,你需要使用一些不同的方法。以後你會在 更新套裝軟體, 第 9
章一部分中讀到更多關於這個問題的內容。
[ 上一頁 ] [ 目錄 ] [ 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