apt — Debian/Ubuntu 套件管理工具

在 Debian/Ubuntu 系統上安裝、更新、移除與搜尋軟體套件。

語法

apt [選項] 指令 [套件...]

常用選項

選項 說明 範例
install 套件 安裝指定套件 sudo apt install nginx
remove 套件 移除套件(保留設定檔) sudo apt remove nginx
purge 套件 完整移除套件及其設定檔 sudo apt purge nginx
update 更新套件來源索引(不安裝) sudo apt update
upgrade 升級所有已安裝且有新版的套件 sudo apt upgrade
full-upgrade 升級並自動處理依賴關係變化 sudo apt full-upgrade
autoremove 移除不再需要的套件(孤立依賴) sudo apt autoremove
search 關鍵字 搜尋套件名稱與說明 apt search nginx
show 套件 顯示套件的詳細資訊(版本、依賴、大小) apt show nginx
list --installed 列出所有已安裝的套件 apt list --installed
-y 自動確認所有提示(非互動式安裝) sudo apt install -y nginx
--no-install-recommends 不安裝建議套件(節省空間) sudo apt install --no-install-recommends nginx

使用範例

範例 1:更新套件索引

在安裝或升級任何套件前,先更新套件來源索引以取得最新版本資訊。

$ sudo apt update
Get:1 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Fetched 389 kB in 1s (389 kB/s)
Reading package lists... Done
範例 2:安裝套件

先 update 再 install 是標準流程。-y 自動確認避免互動提示。

$ sudo apt update && sudo apt install -y nginx
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
  nginx nginx-common libnginx-mod-*
...
Setting up nginx (1.18.0-6ubuntu14.4) ...
範例 3:搜尋套件

搜尋與關鍵字相關的套件名稱與描述,方便找到正確的套件名稱。

$ apt search "text editor"
vim/jammy 2:8.2.3995-1ubuntu2.15 amd64
  Vi IMproved - enhanced vi editor
nano/jammy 6.2-1 amd64
  small, friendly text editor
範例 4:升級所有套件

先 update 取得最新索引,再 upgrade 升級所有套件。建議定期執行維護系統安全。

$ sudo apt update && sudo apt upgrade -y
Calculating upgrade... Done
12 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Do you want to continue? [Y/n] Y
範例 5:移除套件並清理殘留

使用 purge 完整移除套件及設定檔,再 autoremove 清除不需要的依賴套件。

$ sudo apt purge nginx && sudo apt autoremove
Removing nginx ...
Purging configuration files for nginx ...
Removing 5 packages which are no longer needed.
範例 6:查看套件詳細資訊

在安裝前先查看套件的版本、大小、依賴關係等資訊。

$ apt show git
Package: git
Version: 1:2.34.1-1ubuntu1.10
Installed-Size: 14.8 MB
Depends: git-man, liberror-perl, ...
Homepage: https://git-scm.com/
Description: fast, scalable, distributed revision control system

常見錯誤與排錯

E: Could not get lock /var/lib/dpkg/lock-frontend
原因
另一個 apt 程序(如自動更新)正在執行,鎖定了套件資料庫。
解法
等待其他程序完成,或用 ps aux | grep apt 確認後 kill 舊程序。切勿強制刪除鎖定檔。
E: Unable to locate package packagename
原因
套件名稱不存在,或尚未執行 apt update 取得最新來源索引。
解法
先執行 sudo apt update,再重試。或用 apt search 找正確的套件名稱。
E: The repository ... does not have a Release file
原因
第三方來源(PPA)不支援當前的 Ubuntu 版本,或來源已失效。
解法
移除問題來源:sudo add-apt-repository --remove ppa:name/repo,或更新 sources.list。

延伸閱讀