套件管理

Jump to: navigation, search
一個 Linux 發行版本是由儲存在 套件 中的應用程式,以及管理這些應用程式所需的工具所組合起來的, openSUSE 也不例外。

概觀

Packagemanagement.png

套件管理系統是一些工具的集合,提供了一個統一的方法讓您在系統上進行安裝、升級與移除軟體,Linux 發行版本,包含 openSUSE ,通常由數千個軟體套件所組成。

套件 是由軟體及 中繼資訊 (例如軟體的全名、用法的描述、版本編號、供應商、checksum 以及這個軟體要正常運作所需要的 相依性 清單)所組成,他們可由本地的媒體 (CD, DVD 或硬碟) 或 線上套件庫 所提供,安裝過程中,中繼資訊會儲存在一個本地的套件資料庫,用以檢索軟體套件。

Libzypp 是 openSUSE 的套件管理系統,他提供了 YaST 軟體管理 作為圖形化使用者介面,以及 Zypper 作為命令行介面。


套件

套件是由 許多檔案壓縮而成,包含了構成這個軟體的每個檔案 (例如:應用程式本身,分享函式庫,開發套件 - 針對函式庫建構軟體所需要的檔案...等) 以及, 讓他們工作的指令。

一個套件會以安裝路徑,相依性,桌面整合,適當的啟動程序等等,適當的整合在他所針對的發行版本中。所以您應該 永遠 只安裝針對您正使用的發行版本所建構的套件,包含正確的發行版本編號 (例如: openSUSE 11.3),舉例來說,不要在 openSUSE 安裝 Fedora 的套件,甚至您不該在 openSUSE 11.3 上安裝 openSUSE 11.2 的套件(雖然後者有時 可能 行得通)。

套件中繼資料

一個套件也包含了更多的資訊,通常稱為 Metadata(中繼資料), 像是

  • 摘要,
  • 詳細描述,
  • 包含在此套件中的檔案清單,
  • 包含在其中的軟體版本,以及此套件的釋出編號,
  • 何時, 何處以及誰建構的,
  • 建構在什麼架構上,
  • 包含在套件中檔案的 checksums,
  • 他包含的軟體的授權聲明,
  • 他需要其他什麼套件才能正常運作,
  • 等等...

套件相依性

一個關於套件檔的重要概念是他們所包含的相關性,實際上,套件經常和其他的套件相關,因為所包裝的應用程式需要執行環境(其他工具、函式庫等)來運作這個應用程式,套件相依性就是用來表達這種關係。 例如,套件 A 需要套件 B, C 和 D 被安裝以確保能正常運作。

  • 套件相依性是 可傳遞的, 意思是,當套件 A 需要套件 B, 且套件 B 需要套件 C,則套件 A 也需要套件 C, 這就是為什麼有時只為了安裝一個應用程式卻導致最後安裝了一堆的套件。
  • 相依於函式庫 (通常是以 "lib" 開頭名稱的套件) 是非常普遍的,許多單一的應用程式都會相依於一組函式庫套件。

套件與套件相依性是 Linux 發行版本(以及其他 BSD 和 UNIX 系統)中非常重要的概念,因為他提供了模組化的方式建構以及管理一個作業系統及其應用程式,對於函式庫套件尤其重要。 例如, 套件 openssl 包含了密碼函式庫,這是許多應用程式以及其他函式庫 (用於 SSL 加密) 所需要用到的,當有新版或改進版本的 openssl 可用,所有使用它的應用程式只要將它升級到新版就可以從中受益。

他也是一個維護穩定與安全系統非常有效率的方法: 當一個安全性漏洞或錯誤影響了一個許多應用程式所使用的函式庫,只要升級單一的套件就可以修復他們所有的問題。

套件格式

在 Linux 發行版的世界,原生的軟體基本上會被包裝成三種 套件格式

  • tgz (tar gzip 檔案)。 這些檔案被經過基本的壓縮,他們可以包含套件維護者認為有用的任何東西。除了壓縮格式本身,檔案需要被解開,關於 tgz 檔案並沒有標準化規定。
  • deb (Debian)。 這是標準的 Debian 套件系統。
  • rpm (RPM 套件管理員)。 由 Red Hat Linux 建立,並由 LSB 將之標準化,現在被許多 Linux 發行版本(包含 openSUSE)使用作為套件系統。

然而,如果這些包裝格式注意到系統有需要的相依性,他們並不提供相依性管理的能力,他們只會告訴使用者所遇到的問題,然後把問題留給使用者決定要做些什麼。

例如您想要安裝一個 RPM 套件 A,這套件相依於套件 B,RPM 不會自動安裝套件 B,而是告訴你他需要套件 B 然後停下來。他留給使用者去做安裝套件 B,接著再安裝套件 A。 現在,想像一下如果套件 B 相依於套件 CD,而套件 D又相依於套件 E,諸如此類的繼續下去,您將疲於追逐這些相依性直到完成整個巨大的樹狀結構。

套件管理員

在像 openSUSE 這樣的現代 Linux 發行版本,軟體安裝最好的方法是使用 套件管理員。 套件管理員在 RPM 的頂端工作,由 套件庫 (線上伺服器,CD,DVD 等)取得軟體套件,解決相依性並將他們安裝在您的系統,套件管理員也使得稍後移除或升級他們更加簡單,可用來安裝的套件數量,取決於您已經加入了哪些套件庫。

openSUSE 原生的套件管理員是 YaST 軟體管理 模組,但在發行版本中也搭載了其他的套件管理工具像是 Zypper。 有些受限於 RPM 套件,有些則允許更通用型的軟體管理,包含了補釘、樣式及產品。

openSUSE 使用 RPM 格式的套件,您應該安裝針對您的 openSUSE 版本建構的 RPM 套件。

套件庫

在您安裝套件之前, 套件庫必須被啟用 -- 不論是在實體媒體上(像是 CD 或 DVD) 或經由網路。

這些都被稱為 套件庫 或也被稱為其他各種名稱 (像是 安裝來源目錄)。


請參考


外部連結