apt-get upgrade 阻止核心更新。在 Debian 9 上應用更新的官方說明是什麼?
我在 Debian 9 “stretch” 上看到了以下內容:
# apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages have been kept back: linux-image-marvell 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
儘管此命令是根據“保護 Debian 手冊”更新 Debian 的官方方式,但不會安裝更新。(在此處閱讀時的快照)。
相比之下,兩者
aptitude
和較新的apt
命令都準備安裝它。也就是說,這個特定版本不是安全更新。我理解這一點,apt
並且可能aptitude
有不同的預設值。我想問一下 Debian 的這種行為是如何刻意的……
aptitude
在描述如何應用更新時,安全 Debian 手冊首先列出。而且我知道apt
有一些更改的預設值應該更加使用者友好。仔細查看目前的 Debian 安裝指南,它將新使用者指向apt
或aptitude
. 我認為所有範例命令現在都引用apt
,而不是apt-get
.我最初的假設是核心的安全更新不會被 Debian 安全手冊認可的更新方法阻止。(如果我假設錯誤,請告訴我:-)。但我想確保我了解如何更新我的 Debian 系統。
問題
- 如果我想獲得現代 Debian 為新使用者設置的預設值,建議我訓練我的手指打字
apt
而不是apt-get
. 對?- 以前的安裝指南(適用於 Debian 8)參考
apt-get
,以及從 Debian 8 升級到 Debian 9 的文件。所以非常廣泛,我想最安全的選擇是apt
在 Debian 8 -> Debian 9 過渡之前不要使用?- 是否有一個或多個廣為人知的案例需要我提防,目前的解決方案將
apt-get
用於某些任務?- Debian 是否在某處對選擇
apt
更渴望應用更新有評論,這特別證實了安全更新和非安全更新的區別?- 從稍微不同的角度來看,是否有任何關於 Debian 選擇安排這樣的(非安全)核心更新的資訊,以避免它們被應用
apt-get
到我係統上使用的正常配置中?本次更新詳情
# apt-cache policy linux-image-marvell linux-image-marvell: Installed: 4.9+80+deb9u4 Candidate: 4.9+80+deb9u5 Version table: 4.9+80+deb9u5 500 500 http://ftp.uk.debian.org/debian stretch/main armel Packages *** 4.9+80+deb9u4 500 500 http://security.debian.org stretch/updates/main armel Packages 100 /var/lib/dpkg/status
使用的“apt-get”版本
# apt-cache policy apt apt: Installed: 1.4.8 Candidate: 1.4.8 ...
不同更新方法的不同行為
# aptitude upgrade Resolving dependencies... The following NEW packages will be installed: linux-image-4.9.0-7-marvell{a} The following packages will be upgraded: linux-image-marvell 1 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/21.9 MB of archives. After unpacking 91.2 MB will be used. Do you want to continue? [Y/n/?] n Abort. # apt upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following NEW packages will be installed: linux-image-4.9.0-7-marvell The following packages will be upgraded: linux-image-marvell 1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/21.9 MB of archives. After this operation, 91.2 MB of additional disk space will be used. Do you want to continue? [Y/n] n Abort.
首先,我將首先解釋您所看到的行為。預設情況下,
apt-get
非常保守,執行時不會安裝新包upgrade
,僅dist-upgrade
(可以通過--with-new-pkgs
選項更改)。apt
另一方面將(它APT::Get::Upgrade-Allow-New
預設啟用該選項),也將aptitude
(無論如何都有不同的解析度算法)。由於核心經歷了 ABI 碰撞,因此升級它涉及安裝一個新包……另請注意,嚴格來說,您不會將此核心更新作為安全修復程序,而是作為上週末 9.5 點版本的一部分。這既不是這裡也不是那裡,因為優先級是相同的。(您已經意識到這一點,我向其他讀者提到這一點。)核心的安全更新可能涉及 ABI 顛簸,因此這種情況可能與安全更新以及點發布更新一起出現;就 Debian 中的核心軟體包而言,區別主要是機會和時機之一,因為無論如何所有核心更新都是安全更新。
現在回答你的問題:
apt
現在是推薦的 APT 前端,是的,至少用於互動使用;它應該具有使用者友好的預設值(與 相比apt-get
)。兩種工具都使用相同的算法,並且apt-get
可以配置為類似apt
; 執行查看啟用apt-config dump | grep Binary::apt
的具體設置。apt
如果您願意aptitude
,也可以繼續使用它。- 據我所知,在 Debian 8 中,
apt
它完全等同於apt-get
,所以你也可以使用它;apt
Debian 9 在其開發人員的工作中脫穎而出,使其作為面向使用者的工具更加有用。Debian 常見問題解答建議使用Debian 8 (Jessie)apt
代替apt-get
並apt-cache
從 Debian 8 (Jessie) 開始。(我看到它的描述apt update
有點錯誤。)- 目前的建議是避免
apt
在腳本中使用,因為它的界面可能會改變。除此之外,不應該有任何你需要apt-get
而不是apt
.apt
不區分安全更新和非安全更新,除非您將其配置為這樣做。- 我不確定這是一個有意識的決定… Securing Debian Manual的最後一次更新比 Debian 9 早了很多。請注意,當使用 時
apt-get
,Debian FAQ指的是apt-get dist-upgrade
保持 Debian 系統是最新的. FAQ 也早於 Debian 9,但最近更新了。