我是否需要DKMS?


14

我的基于Ubuntu的发行版预装了一些VirtualBox东西,因此我将其卸载并自动删除了DKMS软件包。

从我看来,它看起来像是有用的软件包,但是我需要吗?诸如VirtualBox和CDemu之类的东西是自己安装的,而Ubuntu默认情况下并未附带它,因此我猜只有某些安装模块或某些程序的程序才需要它。

我不是GNU / Linux的长期用户,所以我没有太多经验,甚至没有编译经验。

现在我有一个Linux内核更新正在等待中,但是我不知道是否应该在未安装DKMS的情况下更新它。


您是否使用任何专有驱动程序,例如但不限于nvidia图形或安装ubuntu之后安装的特殊驱动程序?
mchid

不,只有免费的驱动程序。
Justauser

另外需要注意的是:现代计算机上无需卸载默认应用程序(如DKMS)。与(例如)Windows不同,未使用的应用程序不会降低计算机的速度,在现代系统上,它们占用的空间微不足道。
帕迪·兰道

Answers:


15

如果未安装dkms模块,则不需要dkms软件包。在Ubuntu中默认情况下未安装它。

当您安装一些专有的驱动程序,例如Nvidia,AMD或Broadcom时,也会自动安装dkms软件包。

要检查是否有任何dkms模块,可以运行

dkms status

如果未安装dkms,此命令将不起作用,但是您可以查看/var/lib/dkms/目录。

dkms软件包的源存储在 /usr/src/


如何检查我是否有一些模块?没错,我尝试安装专有的NVIDIA驱动程序,并且它想安装DMKS,所以我想如果真的需要它,包管理器将为我安装它。
Justauser

@Justauser添加到了答案
Pilot6

我尝试安装DKMS只是为了尝试命令,它没有附带任何内容。在/ var / lib /中没有dkms文件夹,在/ usr / src /中有2个与linux-headers相关的文件夹
Justauser

因此,您没有dkms模块。
飞行员

7

我想您已经对DKMS进行了一些研究,它用于更新常规内核源代码之外的内核模块。通常,需要DKMS的驱动程序和程序包(例如VirtualBox)。您可能不一定“需要” DKMS,但安装起来很方便,特别是如果您已经安装了额外的软件包,尽管没有安装它不会破坏您的内核升级。

有一个关于DKMS的详细信息在这里,和有用的答案就问Ubuntu的这里


我已经看过这个答案了,但太过分了。您所说的“额外包裹”是什么意思?你是说手动安装?以及“正常内核源代码之外的内核模块”是什么意思?
Justauser

2
额外的软件包表示您已经安装了其他软件。一些软件包,例如VirtualBox,需要与内核进行交互,因此需要将模块安装到内核中以使其能够运行。更新内核时,程序包模块可能不再起作用,或者可能被覆盖。DKMS确保如果有补充软件包将任何模块装入内核,则在内核更新时会对其进行适当处理,并且软件将继续运行。
Arronical

5

简短的回答:如果要在内核更新后也使用Vitualbox,则将需要DKMS以及适合您内核的内核头文件。

长答案:这个系统可以帮助您编译驱动程序(也称为内核模块),以便它们可以与您当前的内核一起运行。如果您不重新编译模块,则会发生该模块被加载的情况,因此它提供的功能将不再可用。您的情况:如果您不重新编译虚拟盒模块,则更新后虚拟盒将不可用。它会启动,但无法启动任何VM。


5

没有DKMS,Ubuntu可以正常启动。

如果您使用的任何东西都依赖DKMS,但Depends:包装中没有,则您会注意到,您可以重新安装DKMS并提交错误。

DKMS用于以源代码形式(或带有源包装程序的二进制文件)提供内核模块的软件包,因此它们不必为每次内核重建都更新模块。无论是否使用DKMS,标准内核本身始终有效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.