[Linux 教學] 一次搞懂 apt update、upgrade 與 full-upgrade:日常維護的最佳實踐
[Linux 教學] 一次搞懂 apt update、upgrade 與 full-upgrade:日常維護的最佳實踐
在使用 Ubuntu 或 Debian 等 Linux 系統時,更新指令是我們最常輸入的命令之一。但你是否曾疑惑過:為什麼有時候用 apt 有時候用 apt-get?什麼時候該用 upgrade,什麼時候又得用 full-upgrade?
這篇文章將拆解這些指令的細微差異,並提供最適合一般使用者的「日常維護黃金流程」。
一、 日常更新的標準動作
對於 90% 的桌面使用者與日常伺服器管理來說,最推薦且安全的指令組合是:
sudo apt update
sudo apt upgrade
為什麼這組指令最適合日常使用?
sudo apt update:
這只是單純「更新套件清單」,讓系統知道哪些軟體有新版本,完全不會改動你系統裡的任何檔案。sudo apt upgrade:
這會安裝可更新的套件,但它的策略非常保守——它絕不會移除任何現有的套件,也不會強制改變相依關係。
結論:這讓它在日常使用上非常安全,幾乎不用擔心跑完指令後系統壞掉或軟體被誤刪。
二、 工具比對:apt 還是 apt-get?
你可能看過網路上有些教學用 apt,有些用 apt-get。這兩者在底層功能相似,但設計目的完全不同。
1. apt:專為「人類」設計
Ubuntu/Debian 官方將 apt 定位為給終端機使用者(End User)使用的介面。
- 優點:輸出友善(有顏色、進度條)、指令簡短好記。
- 功能整合:它把傳統的
apt-get和apt-cache功能整合在一起。apt search(取代 apt-cache search)apt show(取代 apt-cache show)apt list --upgradable(apt 獨有)
- 安全提示:在進行危險操作時會給予更清楚的提示。
2. apt-get:專為「腳本與自動化」設計
如果你在寫 Shell Script、CI/CD 流程或 Dockerfile,請堅持使用 apt-get。
- 優點:行為極度穩定、向後兼容性高。
- 特點:沒有進度條與華麗的輸出,方便機器解析(Parse)文字結果。
- 特殊功能:某些進階除錯功能(如
apt-get source、build-dep)仍只保留在apt-get中。
⚡ 快速結論
- 手動操作(你自己打字)→ 用
apt(舒服、易讀)。 - 寫腳本(自動化程式)→ 用
apt-get(穩定、不出錯)。
三、 進階判斷:何時使用 full-upgrade?
有些教學會提到 apt full-upgrade(等同於舊版的 apt-get dist-upgrade)。這個指令權限更大,但也伴隨著風險。
upgrade 與 full-upgrade 的核心差異
upgrade:只升級,絕不移除套件。如果遇到依賴衝突,它會選擇「保留舊版」(Kept back)。full-upgrade:為了完成升級,它允許移除某些不相容或舊的套件,並調整系統依賴關係。
什麼時候該用 full-upgrade?
你不應該將它作為日常預設指令,只有在以下情況使用:
- 看到 "Kept back" 提示時
當你執行apt upgrade卻出現:「以下套件將被保留 (The following packages have been kept back)」。這通常代表軟體依賴結構改變了,必須允許系統移除舊庫才能升級。 - 系統核心(Kernel)更新
Linux 核心的大版本更新通常需要移除舊的 meta-package,這時需要full-upgrade。 - 大版本系統升級
例如從 Ubuntu 22.04 升級到 24.04,這類操作必然涉及大量的依賴變動。
💡 安全小撇步:
如果你不確定full-upgrade會刪掉什麼重要東西,可以先加上--simulate參數來「模擬」執行:
sudo apt full-upgrade --simulate
四、 總結:推薦的維護流程
綜合以上觀念,建議你將以下流程作為 Linux 系統的日常維護習慣:
步驟 1:標準更新(最安全)
sudo apt update
sudo apt upgrade
步驟 2:處理被保留的套件(視情況執行)
如果步驟 1 出現「套件被保留 (kept back)」或依賴錯誤訊息,才執行:
sudo apt full-upgrade
步驟 3:清理垃圾(保持乾淨)
移除那些已經不再被需要的相依套件(孤兒套件):
sudo apt autoremove
這樣做既能確保系統擁有最新的安全更新,又能避免因為過度激進的指令導致系統環境損壞。