apt-get Upgrade 阻止内核更新。在 Debian 9 上应用更新的官方说明是什么?

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 安装指南,它正在将新用户指向aptaptitude。我认为现在所有示例命令都引用apt,而不是apt-get.

我的起始假设是安全Debian 安全手册认可的更新方法不会阻止对内核的更新。 (如果我假设错误,请告诉我:-)。但我想确保我了解如何更新我的 Debian 系统。

问题

  1. 如果我想获得现代 Debian 为新用户设置的默认设置,建议我训练手指打字apt而不是apt-get.正确的?
  2. 之前的安装指南(针对 Debian 8)参考了apt-get,以及从 Debian 8 升级到 Debian 9 的文档。所以从广义上讲,我想最安全的选择是apt在 Debian 8 -> Debian 9 过渡之前不要使用?
  3. 您是否建议我注意一个或多个广为人知的案例,其中当前的解决方案用于apt-get某些任务?
  4. Debian 是否有关于选择apt更渴望应用更新的评论,特别确认安全更新和非安全更新之间存在区别?
  5. apt-get从稍微不同的角度来看,是否有任何关于 Debian 选择安排这样的(非安全)内核更新的信息,以避免它们与我的系统上使用的正常配置一起应用?

本次更新详情

# 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.

答案1

首先,我将首先解释您所看到的行为。默认情况下,非常保守,仅apt-get在运行时不会安装新软件包(这可以通过选项更改)。另一方面将(默认情况下启用该选项),就像将(无论如何都有不同的分辨率算法)一样。由于内核经历了 ABI 碰撞,升级它需要安装新的软件包......upgradedist-upgrade--with-new-pkgsaptAPT::Get::Upgrade-Allow-Newaptitude

另请注意,严格来说,您获得此内核更新并不是作为安全修复,而是作为上周末 9.5 点版本的一部分。不过,这不在这里也不在那里,因为优先级是相同的。 (你已经知道了这一点,我向其他读者提到过这一点。)内核的安全更新可能涉及 ABI 碰撞,因此安全更新以及点发布更新都可能会出现这种情况;就 Debian 中的内核包而言,这种区别主要是机会和时机的区别,因为无论如何,所有内核更新都是安全更新。

现在回答您的问题:

  1. apt现在是推荐的APT前端,是的,至少对于交互使用来说;它应该具有用户友好的默认值(与 相比apt-get)。这两种工具都使用相同的算法,并且apt-get可以配置为如下行为apt:运行apt-config dump | grep Binary::apt查看具体设置apt启用。如果您愿意,aptitude也可以继续使用它。

  2. 据我所知,在 Debian 8 中,apt它完全等同于apt-get,所以你也可以使用它;apt经过开发人员的努力,Debian 9 成为了最有用的面向用户的工具。Debian 常见问题解答建议使用Debian 8 (Jessie)apt代替apt-getapt-cache从 Debian 8 (Jessie) 开始。 (我看到它的描述apt update略有错误。)

  3. 目前的建议是避免apt在脚本中使用,因为其界面可能会发生变化。除此之外,不应该有任何场景让您需要 apt-get而不是apt

  4. apt不区分安全更新和非安全更新,除非您将其配置为这样做。

  5. 我不确定这是一个有意识的决定...最后一次更新保护 Debian 手册比 Debian 9 旧很多。请注意,使用时apt-getDebian 常见问题解答apt-get dist-upgrade保持 Debian 系统最新。该常见问题解答也早于 Debian 9,但最近更新了。

相关内容