Ian Chou's Blog

[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

為什麼這組指令最適合日常使用?

  1. sudo apt update
    這只是單純「更新套件清單」,讓系統知道哪些軟體有新版本,完全不會改動你系統裡的任何檔案。
  2. sudo apt upgrade
    這會安裝可更新的套件,但它的策略非常保守——它絕不會移除任何現有的套件,也不會強制改變相依關係

結論:這讓它在日常使用上非常安全,幾乎不用擔心跑完指令後系統壞掉或軟體被誤刪。


二、 工具比對:apt 還是 apt-get?

你可能看過網路上有些教學用 apt,有些用 apt-get。這兩者在底層功能相似,但設計目的完全不同。

1. apt:專為「人類」設計

Ubuntu/Debian 官方將 apt 定位為給終端機使用者(End User)使用的介面。

2. apt-get:專為「腳本與自動化」設計

如果你在寫 Shell Script、CI/CD 流程或 Dockerfile,請堅持使用 apt-get

⚡ 快速結論


三、 進階判斷:何時使用 full-upgrade?

有些教學會提到 apt full-upgrade(等同於舊版的 apt-get dist-upgrade)。這個指令權限更大,但也伴隨著風險。

upgradefull-upgrade 的核心差異

什麼時候該用 full-upgrade?

你不應該將它作為日常預設指令,只有在以下情況使用:

  1. 看到 "Kept back" 提示時
    當你執行 apt upgrade 卻出現:「以下套件將被保留 (The following packages have been kept back)」。這通常代表軟體依賴結構改變了,必須允許系統移除舊庫才能升級。
  2. 系統核心(Kernel)更新
    Linux 核心的大版本更新通常需要移除舊的 meta-package,這時需要 full-upgrade
  3. 大版本系統升級
    例如從 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

這樣做既能確保系統擁有最新的安全更新,又能避免因為過度激進的指令導致系統環境損壞。