Ict-創新/LPI/102.4
考生應該能夠使用 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-cache 和 apt-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** 工具可以將 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