Difference between revisions of "Arch packaging standards (正體中文)"

From ArchWiki
Jump to: navigation, search
Line 10: Line 10:
 
=== 目錄 ===
 
=== 目錄 ===
  
* 設定檔要被放在 /etc 目錄內。如果有超過一個以上的設定檔,應該在 /etc 內建立子目錄來放置,以保持 /etc 的整潔。使用如 /etc/{套件名}/ 目錄來放置對應套件的設定檔,或是選用一個具有代表意義的亦可。
+
* 設定檔要被放在 <tt>/etc</tt> 目錄內。如果有超過一個以上的設定檔,應該在 <tt>/etc</tt> 內建立子目錄來放置,以保持 <tt>/etc</tt> 的整潔。使用如 <tt>/etc/{套件名}/</tt> 目錄來放置對應套件的設定檔,或是選用一個具有代表意義的亦可。
 
* 套件本身的檔案要遵守以下的規範:
 
* 套件本身的檔案要遵守以下的規範:
** /etc: 系統必備的設定檔
+
** <tt>/etc</tt>: 系統必備的設定檔
** /usr/bin: 應用程式執行檔
+
** <tt>/usr/bin</tt>: 應用程式執行檔
** /usr/sbin: 系統執行檔
+
** <tt>/usr/sbin</tt>: 系統執行檔
** /usr/lib: 函式庫
+
** <tt>/usr/lib</tt>: 函式庫
** /usr/include: 標頭檔
+
** <tt>/usr/include</tt>: 標頭檔
** /usr/lib/{pkg}: 套件 {pkg} 的模組、外掛等等
+
** <tt>/usr/lib/{pkg}</tt>: 套件 {pkg} 的模組、外掛等等
** /usr/man: Manpages
+
** <tt>/usr/man</tt>: Manpages
** /usr/share/{pkg}: 套件 {pkg} 的資料
+
** <tt>/usr/share/{pkg}</tt>: 套件 {pkg} 的資料
** /etc/{pkg}: 套件 {pkg} 的設定檔
+
** <tt>/etc/{pkg}</tt>: 套件 {pkg} 的設定檔
** /opt: Large self-contained packages such as KDE, Mozilla, etc.  
+
** <tt>/opt</tt>: Large self-contained packages such as KDE, Mozilla, etc.  
  
 
=== makepkg 的責任 ===
 
=== makepkg 的責任 ===
  
 
當你使用 makepkg 來製作套件時,它會自動為你做下列動作:
 
當你使用 makepkg 來製作套件時,它會自動為你做下列動作:
 +
 +
# 檢查套件的相依套件是否已被安裝
 +
# 從伺服器上下載原始碼
 +
# 解開原始碼
 +
# 使用需要的補丁
 +
# 編譯此軟體,並安裝在假的根目錄
 +
# 移除 <tt>/usr/doc, /usr/info, /usr/share/doc, /usr/share/info</tt> 這些目錄中此軟體安裝的資料
 +
# 去除掉二進位執行檔中的符號(symbols)
 +
# 去除掉函式庫中的除錯用符號
 +
# 產生每個套件中都會有的 meta file
 +
# 將假的根目錄壓縮起來成為套件檔
 +
# 將套件存在設定好的目的資料夾(預設是目前目錄)
  
 
=== 套件規矩 ===
 
=== 套件規矩 ===
Line 38: Line 50:
  
 
=== Java 套件 ===
 
=== Java 套件 ===
 +
 +
 +
== 備註 ==
 +
 +
* 原文: http://wiki.archlinux.org/index.php/Arch_Packaging_Standards

Revision as of 08:24, 10 March 2007

套件規範

套件命名規則

  • 套件名稱只能以數字跟字母組成,且全部都需為小寫。
  • 版本號(version)要跟原作者釋出的相同。版本號可以由字母、數字跟 '.' 組成,但不能有 '-'。
  • 釋出版號(release)是 Arch Linux 特有的,這用來讓使用者識別新舊版本。當一個新的套件釋出,釋出版號(release) 是從 1 開始算,當之後有作修正或是最佳化的版本釋出的話,釋出版號(release) 則累加 1。當原作者釋出新版的話,則釋出版號(release)重設為 1。釋出版號(release)與版本號(version)遵守相同的命名規則。
  • 例如:目前最新的 nmap 版本為 4.20-1,4.20即為版本號(version),'-1'的部份表示釋出版號(release)為1。

目錄

  • 設定檔要被放在 /etc 目錄內。如果有超過一個以上的設定檔,應該在 /etc 內建立子目錄來放置,以保持 /etc 的整潔。使用如 /etc/{套件名}/ 目錄來放置對應套件的設定檔,或是選用一個具有代表意義的亦可。
  • 套件本身的檔案要遵守以下的規範:
    • /etc: 系統必備的設定檔
    • /usr/bin: 應用程式執行檔
    • /usr/sbin: 系統執行檔
    • /usr/lib: 函式庫
    • /usr/include: 標頭檔
    • /usr/lib/{pkg}: 套件 {pkg} 的模組、外掛等等
    • /usr/man: Manpages
    • /usr/share/{pkg}: 套件 {pkg} 的資料
    • /etc/{pkg}: 套件 {pkg} 的設定檔
    • /opt: Large self-contained packages such as KDE, Mozilla, etc.

makepkg 的責任

當你使用 makepkg 來製作套件時,它會自動為你做下列動作:

  1. 檢查套件的相依套件是否已被安裝
  2. 從伺服器上下載原始碼
  3. 解開原始碼
  4. 使用需要的補丁
  5. 編譯此軟體,並安裝在假的根目錄
  6. 移除 /usr/doc, /usr/info, /usr/share/doc, /usr/share/info 這些目錄中此軟體安裝的資料
  7. 去除掉二進位執行檔中的符號(symbols)
  8. 去除掉函式庫中的除錯用符號
  9. 產生每個套件中都會有的 meta file
  10. 將假的根目錄壓縮起來成為套件檔
  11. 將套件存在設定好的目的資料夾(預設是目前目錄)

套件規矩

許可

提交套件

其他指導方針

CVS/SVN 套件

Java 套件

備註