網站搜尋

如何使用 dpkg、apt、aptitude、synaptic 和 tasksel


Debian 提供了多種軟體套件管理工具,每種工具在套件管理生態系中都有特定的用途,了解何時以及如何使用每種工具將有助於你有效地維護系統。

了解套件管理層級

在 Debian 中,套件管理以分層方式運作,每個工具扮演著不同的角色:

  • dpkg 是用來直接安裝、移除和檢查 .deb 套件檔的核心工具,但它不負責下載套件或解決相依性問題。
  • apt 和 aptitude 在 dpkg 之上運作,它們從線上軟體庫取得套件並自動處理相依性,使安裝變得更簡單。
  • Synaptic 只是一個圖形介面(類似應用程式商店的視覺化工具),允許你在不使用命令列的情況下使用 apt 功能。
  • tasksel 安裝相關軟體的群組(稱為 任務),例如「網頁伺服器」或「桌面環境」,為您省去逐一安裝每個套件的麻煩。

由於這些工具在不同層面運作,它們是互補的而非互相取代,你會發現某些情況下一個工具比另一個更適合使用。

使用 dpkg

dpkg 是一個底層的套件工具,直接操作你系統中已擁有的 .deb 檔案。它不會從網路上下載套件,也不會自動安裝所需的相依套件。

所以如果一個套件需要其他軟體才能運作,你必須自己安裝那些依賴項,或者改用 apt 來自動安裝那些依賴項。

要安裝已經下載的套件檔案,例如,如果你有檔案 google-chrome-stable_current_amd64.deb,你可以使用以下命令來安裝它

dpkg -i package-name.deb

如果所有必需的依賴項已經存在,安裝將會成功完成。然而,如果缺少某些套件,您可能會看到類似的錯誤訊息:

dependency problems - leaving unconfigured

在這種情況下,您可以透過執行以下命令來修復缺失的依賴項,此命令會指示 apt 自動下載並安裝完成安裝所需的任何依賴項。

sudo apt -f install

要移除已安裝的套件:

dpkg -r package-name

列出系統上所有已安裝的套件:

dpkg -l

要檢查特定軟體包是否已安裝:

dpkg -l package-name

由於 dpkg 不會自動處理依賴關係,因此您可能會遇到缺少套件的錯誤。在這種情況下,就需要使用像 apt 這樣的高階工具。

使用 apt 進行日常套件管理

雖然 dpkg 可以直接處理 .deb 檔案,但你大多數時間會使用 apt,因為它會自動從 Debian 的線上資源下載套件並安裝所需的依賴,這使得 apt 成為日常軟體安裝、移除和更新的首選工具。

apt 工具在安裝和移除操作時需要超級使用者權限,因此您需要使用 sudo 或以 root 身份執行這些命令。

在安裝任何軟體之前,最好先更新你的軟體包清單,這樣系統就能知道最新可用的版本:

sudo apt update

要安裝一個套件及其所有必要的依賴項,請使用:

sudo apt install package-name

要移除套件但保留其設定檔案:

sudo apt remove package-name

如果你也想移除設定檔(更乾淨的卸載),請使用:

sudo apt purge package-name

將所有已安裝的套件升級到最新版本:

sudo apt upgrade

如果您不確定確切的軟體包名稱,可以透過關鍵字搜尋,系統將會顯示符合條件的軟體包列表以及簡短說明。

apt search keyword

apt 會將下載的套件檔案保存在您的系統中,以防再次需要。隨著時間推移,這個快取可能會變得很大,要釋放空間,可以執行:

sudo apt clean

使用 aptitude 工具管理套件

雖然 apt 通常足以應對大多數日常套件管理,但 aptitude 提供了一些額外功能,並且通常能處理更複雜的依賴情況。在某些 apt 無法解決套件衝突或升級問題的情況下,aptitude 可以提供更好的解決方案。

你可以像使用 apt 一樣從命令列使用 aptitude:

sudo aptitude update
sudo aptitude install package-name
sudo aptitude remove package-name
aptitude search keyword

然而,aptitude 的一個主要優點是它還包含一個互動式的文字介面,你可以透過以下方式開啟:

sudo aptitude

aptitude 的文字介面

此介面允許您瀏覽套件、閱讀說明、查看版本,並在套用變更之前標記套件以便安裝或移除。套件依類別整齊排列,使探索系統比記住命令列名稱或搜尋詞更容易。

使用 aptitude 進行有組織的套件瀏覽

另一個好處是,aptitude 會追蹤哪些套件是手動安裝的,哪些是作為依賴自動安裝的。因此,在卸載軟體時,它通常更能決定哪些套件可以安全移除,幫助你避免意外移除重要的東西。

使用 Synaptic 進行圖形化套件管理

如果你偏好使用圖形介面而不是命令列,Synaptic 提供了一個完整功能的套件管理器,建立在 apt 之上。它以有組織且可搜尋的列表顯示套件,並提供詳細的描述及有關依賴、版本和安裝狀態的資訊。

要安裝 Synaptic,請執行:

sudo apt install synaptic

安裝後,您可以從應用程式選單啟動它,或透過執行以下命令來啟動:

sudo synaptic-pkexec

Synaptic 套件管理員

當 Synaptic 打開時,你會在左側看到軟體包類別,在右側看到軟體包清單。選擇某個軟體包會在下方面板顯示詳細資訊,包括該軟體包的功能、可用的版本以及它依賴的其他軟體包。

透過 Synaptic 閱讀封裝資訊

要安裝套件,請右鍵點擊它並選擇「標記以安裝」,這將自動選擇所有必要的依賴項。標記完所有想要的套件後,點擊「套用」以開始安裝。

使用 Synaptic 安裝套件

因為 Synaptic 在安裝任何東西之前就提供了有關套件衝突和依賴變更的視覺反饋,它讓用戶能夠清楚地看到自己操作的效果。

使用 tasksel 安裝套件群組

與專注於單個套件的工具不同,tasksel 能一次安裝整套相關的軟體,這些套件稱為任務,每個任務包含執行系統特定功能所需的所有套件,例如網頁伺服器、桌面環境或郵件伺服器。

要啟動互動式任務選擇菜單,請執行:

sudo tasksel

這將打開一個菜單,您可以在其中瀏覽可用的任務,使用方向鍵移動,並使用空格鍵選擇或取消選擇任務。

使用 Tasksel 的互動式選單

如果你想在不打開選單的情況下查看可用任務,請使用:

tasksel --list-tasks

查看可用任務

要直接從命令列安裝特定任務,請執行:

sudo tasksel install task-name

雖然在日常套件管理中較少使用 tasksel,但在系統設定時或當你想一次安裝完整的軟體環境時,它非常有用。

選擇合適的工具

Debian 中的每個套件管理工具都是為特定用途而設計的,選擇適合的工具取決於你想要做什麼。當你處理手動下載的單個 .deb 檔案時,尤其是來自官方軟體庫之外的檔案時,使用 dpkg。在日常情況下,例如從命令列安裝、移除和更新軟體時,使用 apt,它會自動為你處理相依性問題。

在處理較複雜的相依性問題或想使用其互動式文字介面來瀏覽和管理套件時,請考慮 aptitude。如果你偏好圖形介面或想在安裝前以視覺方式探索可用軟體,則選擇 Synaptic。

最後,當你需要安裝一整套相關軟體包時,例如要將系統配置為網頁伺服器、桌面環境或開發工作站時,請使用 tasksel。

所有這些工具都使用相同的底層套件資料庫,因此彼此之間不會發生衝突。你可以根據需求自由切換使用它們。關鍵是選擇最適合該任務的工具,而不是依賴單一方法處理所有事務。