linux-image-virtual 包在 14.04 trusty 中是空的吗?

linux-image-virtual 包在 14.04 trusty 中是空的吗?

我似乎无法在 trusty 中安装 linux-virtual 内核(用于虚拟机)。软件包安装得很好,但它们只是空的,除了 usr/share/doc 中的变更日志和版权文件外什么都没有。

在 Ubuntu 14.04 trusty 上安装 -virtual kernel 的正确步骤是什么?还是整个东西现在都被弃用了?

谢谢

以供参考:

root@s2:/boot/grub# dpkg -L linux-virtual
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/linux-virtual
/usr/share/doc/linux-virtual/copyright
/usr/share/doc/linux-virtual/changelog.gz
root@s2:/boot/grub# dpkg -L linux-image-virtual
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/linux-image-virtual
/usr/share/doc/linux-image-virtual/copyright
/usr/share/doc/linux-image-virtual/changelog.gz
root@s2:/boot/grub# dpkg -L linux-image-extra-virtual
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/linux-image-extra-virtual
/usr/share/doc/linux-image-extra-virtual/copyright
/usr/share/doc/linux-image-extra-virtual/changelog.gz
root@s2:/boot/grub# dpkg -L linux-headers-virtual
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/linux-headers-virtual
/usr/share/doc/linux-headers-virtual/copyright
/usr/share/doc/linux-headers-virtual/changelog.gz
root@s2:/boot/grub# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty

答案1

包裹linux-image-*名称中包含内核版本号元包(也可以看看这个问题)。它们的工作原理是不直接提供软件,而是始终将为你的 Ubuntu 版本提供的最新稳定内核声明为依赖性。 (这里有一些关于一般依赖关系的更多信息。

当有新内核可用时,会自动安装(并且无需删除旧内核,因此如果新内核出现问题,您可以使用旧内核进行启动)。

尽管如此,内核linux-image-virtual导致安装(目前) 与 相同linux-image-generic也就是说,在最近的版本(例如 14.04)中,Ubuntu 不再为虚拟机提供单独的内核。(但linux-image-virtual仍然为您提供内核并安装更新的内核;您不必安装任何其他元包来实现这一点。)Ubuntu 12.04有单独的虚拟内核包。

那里仍有差异linux-image-generic和之间linux-image-virtual,这就是linux-image-generic 引入一些额外的内核模块这可能被认为是非必要的,因为它不仅依赖于最新的linux-image-<VERSION>-generic软件包,还依赖于最新的linux-image-extra-<VERSION>-generic软件包。相反,linux-image-virtual依赖于linux-image-<VERSION>-generic不是linux-image-extra-<VERSION>-generic

这实现了(至少部分)使“虚拟机内核”更加轻量级的目标。

考虑到这一点,你可能会感到困惑一套linux-image-extra-virtual仍然存在,即使在 Ubuntu 14.04 中也是如此。只需将linux-image-generic元包声明为依赖项即可。当linux-image-extra-virtual依赖于实际的linux-image-extra-<VERSION>-virtual模块提供包时(即当此类包存在时,例如在 12.04 中),它会安装当时的单独虚拟内核以及额外的模块。现在没有单独的虚拟内核,因此需要linux-image-extra-virtual做的就是安装额外的模块,这可以通过确保已linux-image-generic安装来实现。

linux-image-extra-virtual实际上是过渡方案在最近的 Ubuntu 版本中;它实际上只存在,以便旧系统(例如,12.04)linux-image-extra-virtual在升级到较新的系统(例如,14.04)后安装了必要的软件包。

资料来源:

在最近的 Ubuntu 版本中,有很多文档没有更新以反映这一点linux-image-virtuallinux-image-generic提供相同的内核,这就是我提供链接以packages.ubuntu.com明确显示依赖关系的原因。(这里有一点点信息在这个问题中。我认为,Ubuntu 或 Debian 发行说明中明确详细地说明了这一点。)

或者说整个东西现在已经被弃用了?

这或许是对所发生情况的准确描述。但关键点在于,这与没有直接提供实际的内核文件无关linux-image-virtuallinux-image-generic元包也没有直接提供这些文件。

相关内容