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。