使用 apt-get upgrade 时如何强制安装内核更新?

Web*_*ide 37 upgrade package-management apt kernel

要更新我的服务器,我使用apt-get upgrade.

但是当有内核更新时我总是需要做,apt-get install linux-....因为apt-get update不安装它们。

有没有办法告诉它也安装这些?我试过 -f 但它不起作用。

Nic*_*ght 20

所以,关于评论:对不起,你是对的,我完全误读了 apt-get 告诉我的内容(我正在使用英文版!:))。

经过一些研究,您可能想要使用的是aptitude safe-upgrade,它确实安装了新内核。真的!我仔细检查过!:)

aptitude一般来说,您应该更喜欢apt-get无论如何,除非您特别需要apt-get.

nknight@nkubuntu1004:~$ sudo aptitude safe-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Reading extended state information      
Initializing package states... Done
Resolving dependencies...
Resolving dependencies...
The following NEW packages will be installed:
  linux-headers-2.6.32-24{a} linux-headers-2.6.32-24-generic{a} linux-image-2.6.32-24-generic{a} 
The following packages will be upgraded:
  apt apt-transport-https apt-utils base-files firefox firefox-branding firefox-gnome-support gdm google-chrome-stable 
  icedtea-6-jre-cacao linux-generic linux-headers-generic linux-image-generic linux-libc-dev openjdk-6-jre openjdk-6-jre-headless 
  openjdk-6-jre-lib software-center thunderbird ureadahead xulrunner-1.9.2 
21 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 129MB of archives. After unpacking 188MB will be used.
Do you want to continue? [Y/n/?] 
Run Code Online (Sandbox Code Playgroud)

  • aptitude 将从 debian 和 ubuntu 未来版本的默认安装中删除。Apt-get 再次成为安装软件包的首选工具 (4认同)

hel*_*dre 20

您正在寻找

sudo apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud)

  • 使用 dist-upgrade 可以添加或删除其他包,它不仅限于内核。如果您为其他人托管,这可能是服务器上的问题。但是,在这种情况下,您可能无论如何都希望使用 apt-pin 来防止意外升级。 (4认同)
  • `dist-upgrade` 将在尝试解析升级时安装新包,当内核 ABI 更改时需要更新包(因为它解析为不同的二进制包名称)。 (2认同)

小智 5

如果你想安装,aptitude那么请继续 - 但它有它的依赖项,恕我直言,没有它你也可以很好地摆脱 - 特别是如果你想保持你的服务器安装精简(呃)。

当您运行时,sudo apt-get upgrade它会通过以下方式告诉您未升级的软件包:

The following packages have been kept back:
  linux-generic linux-headers-generic linux-image-generic
Run Code Online (Sandbox Code Playgroud)

因此,如果您使用 ssh 终端进行连接,只需复制+粘贴即可输入以下命令:

$ sudo apt-get upgrade linux-generic linux-headers-generic linux-image-generic
Run Code Online (Sandbox Code Playgroud)

它只升级保留的软件包。用于uname -r显示重启前后的内核版本(需要刷新正在运行的内核)并且不要忘记purge-old-kernels重启后运行。