跳到內容

Ict-創新/LPI/102.4

來自華夏公益教科書

102.4 Debian 軟體包管理

[編輯 | 編輯原始碼]

考生應該能夠使用 Debian 軟體包管理器進行軟體包管理。


關鍵知識領域

  • 安裝、升級和解除安裝 Debian 二進位制軟體包。
  • 查詢包含特定檔案或庫的軟體包,這些檔案或庫可能已安裝或未安裝。
  • 獲取軟體包資訊,如版本、內容、依賴項、軟體包完整性和安裝狀態(軟體包是否已安裝)。

大多數 Linux 發行版使用某種形式的軟體包管理來管理軟體,以執行安裝、更新和查詢等任務。如今,使用兩種主要的軟體包管理系統,您的發行版使用哪種系統取決於其來源。大多數源自 Red Hat 的發行版使用 rpm 軟體包管理器,而源自 Debian 的發行版使用 dpkg 管理器。


Debian 軟體包管理

使用基於 Debian 的 Linux 變體的系統使用 Debian 軟體包管理系統。Debian 系統比 rpm 系統更加嚴格和可配置,並被 Debian 派生髮行版(如 Ubuntu)使用。在 Debian 系統下,軟體包由 'dpkg' 管理,但您可能更熟悉 dpkg 管理工具,如“apt”和“aptitude”。

軟體包命名

[編輯 | 編輯原始碼]

Debian 軟體包名稱的格式如下

name_version-release_architecture.deb

例如 xxchat_2.8.6-4ubuntu5_amd64.deb

發行版號指示軟體包中包含的軟體版本的哪個 Debian 發行版,而體系結構名稱指定計算機體系結構 (i386、sparc、all)。因此,以上 deb 軟體包適用於 AMD64 體系結構的 xchat 2.8.6-4ubuntu5 版本。

dpkg

dpkg 命令透過命令列引數控制,這些引數由一個操作和零個或多個選項組成。操作引數告訴 dpkg 要做什麼,而選項以某種方式控制操作的行為。

dpkg維護了一些關於可用軟體包的有用資訊。這些資訊分為三類:狀態選擇狀態標誌


軟體包狀態


狀態 描述
已安裝 軟體包已解包並配置正確。
半安裝 軟體包的安裝已開始,但由於某種原因未完成。
未安裝 軟體包未安裝在您的系統上。
已解包 軟體包已解包,但未配置。
半配置 軟體包已解包,配置已開始,但由於某種原因尚未完成。
配置檔案 系統上只存在軟體包的配置檔案。


軟體包標誌

標誌 描述
保持 標記為保持的軟體包不會被dpkg處理,除非用選項 --force-hold 強制執行。
需要重新安裝 標記為需要重新安裝的軟體包已損壞,需要重新安裝。這些軟體包無法刪除,除非使用選項 --force-reinstreq 強制執行。


操作

dpkg 操作的核心是指定應執行的操作的命令列引數。雖然有很多引數,但下表總結了您可能在日常操作中經常需要使用的一些主要操作。

操作 描述
-l 列印系統上安裝的軟體包列表,如果給出任何模式,則列印與模式匹配的軟體包列表。每行前三個字元顯示軟體包的狀態、選擇狀態和標誌
-s 顯示有關特定已安裝軟體包的狀態和資訊
-I 顯示.deb檔案中的軟體包資訊
-L 列出軟體包中包含的檔案
-S 顯示包含指定檔案的軟體包
-i .deb檔案安裝(或升級)和配置軟體包
--解包 僅解包.deb檔案中的軟體包
--配置 配置已解包的軟體包。使用 -a(或 --pending)配置所有需要配置的軟體包
-r 刪除軟體包(但保留其配置檔案)
-P 清除 - 刪除軟體包及其配置檔案
--獲取選擇 從系統中獲取軟體包選擇列表(到標準輸出)
--設定選擇 為系統設定軟體包選擇列表(從標準輸入)


選項

所有選項都可以在命令列和dpkg配置檔案/etc/dpkg/dpkg.cfg中指定。配置檔案中的每一行都是一個選項(與命令列選項完全相同,但沒有前導破折號),或者是一個註釋(如果以#開頭)。


選項 描述
--force-thing 強制dpkg執行它通常不會執行的操作(例如,忽略依賴項資訊 - --force-depends,或使用 –force-downgrade 降級軟體包)
--refuse-thing 拒絕執行dpkg通常會自動執行的操作
--ignore-depends 忽略軟體包的依賴項檢查
--no-act 顯示dpkg將要執行的操作,但不要執行(也稱為:--simulate
-R 遞迴遍歷目錄(與 -i--unpack 結合使用)

dpkg

dpkg在操作中使用許多檔案,包括/etc/dpkg/dpkg.cfg,其中包含預設配置設定。

可用軟體包列表及其狀態儲存在以下檔案中

/var/lib/dpkg/available/var/lib/dpkg/status

.deb檔案以及構成軟體包程式、庫和配置的檔案也將包含一些控制檔案,這些檔案允許在安裝和刪除之前和之後執行指令碼,以及檔案和配置檔案列表。安裝軟體包後,這些檔案可以在 /var/lib/dpkg/info 目錄中找到。

dpkg 的使用

要從 .deb 檔案安裝軟體包,您可以使用以下 dpkg 命令

# dpkg –i hello_2.1.1-4_i386.deb 或

# dpkg --解包 hello_2.1.1-4_i386.deb

# dpkg --配置 hello

要刪除 hello 軟體包及其配置,您可以使用

# dpkg –P hello

# dpkg –r hello

將只刪除軟體包,而保留其配置檔案。

要獲取系統上所有已安裝軟體包的列表,請使用以下命令

# dpkg –l

請注意,在處理軟體包檔案時,會給出檔名,而在處理已安裝的軟體包時,只給出軟體包名稱。

dpkg工具適用於安裝沒有依賴項的單個軟體包,但當安裝可能具有依賴項的多個軟體包時,通常會使用 APT 工具。

APT 是 dpkg 的優勢之一,它提供了一種簡單的方法來安裝和更新系統。它由兩個檔案控制


檔案 描述
/etc/apt/apt.conf 包含 APT 的一般配置選項,如要安裝的 Debian 發行版、是否/要使用的代理設定等
/etc/apt/sources 列出 Debian 檔案的來源,這些來源可能在 CD 上或網路上

通常,要使用 APT,您必須首先配置其要使用的來源。apt 的主要配置檔案是 /etc/apt/source.list 檔案。它定義了 apt 應該用於安裝新軟體或更新現有應用程式的儲存庫。以下是一個 Ubuntu /etc/apt/sources.list 檔案的摘錄。

deb http://archive.ubuntu.com/ubuntu lucid main restricted

deb-src http://archive.ubuntu.com/ubuntu lucid main restricted

deb http://archive.ubuntu.com/ubuntu lucid-updates main restricted

deb-src http://archive.ubuntu.com/ubuntu lucid-updates main restricted

存檔型別可以是 deb(二進位制軟體包)或 deb-src(原始檔)。該行的其餘部分定義了儲存庫位置,方法是提供儲存庫所在的 url,以及在 url 位置找到特定儲存庫所需的資訊。


一旦 APT 知道 Debian 軟體包的位置,就會使用兩個命令列工具進行軟體包管理:apt-cacheapt-get


apt-cache

apt-cache 允許操作 APT 軟體包快取(儲存在 /var/cache/apt 中的檔案中)。在命令列上,操作通常在 apt-cache 之後,常見的選項包括

操作 描述
搜尋 在所有可用的軟體包描述中搜索給定的字串,並列印匹配軟體包的簡要描述
顯示 顯示指定包的完整描述


apt-get

雖然 **apt-cache** 有助於查詢有關可用軟體包的資訊,但 **apt-get** 允許更新軟體包資訊、檢索、安裝和刪除軟體包,甚至升級整個 Debian 發行版。apt-get 期望在命令列中提供一個操作,下面列出了最常見的操作。

操作 描述
update 更新 /etc/apt/sources.list 中的軟體包列表。
install package 安裝指定的軟體包及其所有依賴項。
upgrade 升級所有有更新版本的軟體包。
dist-upgrade 將整個發行版升級到最新版本(最好先閱讀發行說明!)。
remove 刪除指定的軟體包。


APT 的使用

APT 的一個用途是更新系統(例如,如果有安全更新可用)。這通常使用以下兩個命令完成:

# apt-get update

# apt-get upgrade

APT 的另一個主要用途是安裝所需的軟體包。這通常涉及以下命令:

apt-get update # 更新軟體包列表

apt-cache search frob # 查詢與 frobbing 相關的軟體包

apt-cache show frobnicate # 顯示有關特定軟體包的資訊

apt-get install frobnicate # 安裝 frobnicate 軟體包及其依賴項

Alien 工具

[編輯 | 編輯原始碼]

**alien** 工具可以將 Debian 軟體包轉換為 RedHat 軟體包,反之亦然。您可以在以下地址下載該工具:http://kitenet.net/programs/

將 Debian 軟體包轉換為 rpm

# alien --to-rpm package.deb

將 rpm 軟體包轉換為 Debian

# alien --to-debian package.rpm


Aptitude

Aptitude 是 Debian 軟體包管理系統的另一個基於文字的介面。與 apt 類似,aptitude 可以用於在 Debian 機器上安裝、刪除和更新軟體。以下是 aptitude 中常用的引數列表。


  • aptitude update – 更新可用軟體包列表。
  • aptitude install – 安裝新的軟體。
  • aptitude reinstall – 重新安裝現有的軟體包。
  • aptitude remove – 刪除現有的軟體包。
  • aptitude purge – 刪除軟體包及其關聯的配置檔案。
  • aptitude search – 允許您搜尋可用軟體包列表。



使用到的檔案、術語和實用程式:* /etc/apt/sources.list

  • dpkg
  • dpkg-reconfigure
  • apt-get
  • apt-cache
  • aptitude


上一章 | 下一章

華夏公益教科書