保留核心包背後的邏輯是什麼?

保留核心包背後的邏輯是什麼?

我希望有更多知識的人可以解釋一下apt-get upgrade在 Ubuntu 16.04 及更高版本中執行的操作。

我看到的行為是apt-get upgrade有時不會安裝新的核心包,有時會:

即從輸出:

The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic linux-tools-generic

知道執行 adist-upgrade將安裝這些軟體包(所以不要重複該答案:-)。我不知道是什麼在控制這些包裹的保留。
有時在執行操作時會安裝新內核apt-get upgrade,有時會保留軟體包。

這些保留是由 Canonical 自己放置的嗎?

答案1

apt-get upgrade命令僅將軟體包升級到較新的版本,不會安裝新軟體包或刪除任何軟體包來升級軟體包。

當您升級核心時,您實際上正在安裝新核心。 Ubuntu 不會升級內核,它會在保留舊內核的同時安裝新內核。

但為什麼?為什麼我們安裝新版本的核心而不是升級到最新版本?答案是因為穩定性。

您永遠不知道核心升級後會發生什麼,它可能無法啟動您的系統或讓您的硬體正常運作。您應該始終保留舊版本,以便在出現任何問題時您仍然擁有一台可以工作的機器。

切勿升級您的工作核心。

Slackware 說系統升級指導


更多資訊

man apt-get:

在任何情況下都不會刪除目前安裝的軟體包,也不會檢索和安裝尚未安裝的軟體包。目前安裝的軟體包的新版本如果不更改另一個軟體包的安裝狀態就無法升級,將保留其目前版本。

然而,如您所知,您也可以使用apt-get dist-upgradeapt upgrade安裝這些「保留」的軟體包。

$ apt-cache search linux-image-4.4.*-generic | tail -3
linux-image-4.4.0-75-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-77-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-78-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP

看?這些是不同的軟體包,因此需要重新安裝而不是升級。

相關內容