linux-image-virtual 包在 14.04 中是空的,可信吗?

use*_*427 3 package-management kernel 14.04

我似乎无法可靠地安装 linux 虚拟内核(用于 VM)。这些软件包安装得很好,但它们只是空的,除了 usr/share/doc 中的更改日志和版权文件之外没有任何东西。

在 Ubuntu 14.04 trusty 上安装 -virtual 内核的正确程序是什么?或者整个事情现在都被弃用了?

谢谢

以供参考:

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
Run Code Online (Sandbox Code Playgroud)

Eli*_*gan 8

linux-image-*该包包含其姓名的内核版本号是综合包(也看到了这个问题)。它们的工作方式是不直接提供软件,而是始终将为您的 Ubuntu 版本提供的最新稳定内核声明为依赖项。(这里有一些关于一般依赖项的更多信息。

会导致新内核在可用时自动安装(并且不会删除旧内核,因此如果较新内核中出现某些问题,您可以使用较旧内核启动)。

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

这里还是有区别的之间linux-image-genericlinux-image-virtual,那就是linux-image-generic 在一些额外的内核模块拉可能被认为是不必要的,按不仅依赖于最新的linux-image-<VERSION>-generic包,也是最新的linux-image-extra-<VERSION>-generic软件包。相比之下,linux-image-virtual取决于linux-image-<VERSION>-genericlinux-image-extra-<VERSION>-generic

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

考虑到这一点,即使在 Ubuntu 14.04 中,您也可能linux-image-extra-virtual软件包仍然存在的方式感到困惑。这只需将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-virtual;提供的实际内核文件无关。该linux-image-generic元数据包不为他们提供直接要么。