为什么 apt-mark Hold 无法阻止 dkms 在 Debian 上运行?

为什么 apt-mark Hold 无法阻止 dkms 在 Debian 上运行?

我的apt install id3v2失败是由于

dkms: running auto installation service for kernel 6.1.0-18-amd64.

dpkg: error processing package linux-headers-amd64 (--configure):
 dependency problems - leaving unconfigured
Processing triggers for man-db (2.11.2-2) ...
Errors were encountered while processing:
 linux-image-6.1.0-18-amd64
 linux-headers-6.1.0-18-amd64
 linux-image-amd64
 linux-headers-amd64

我尝试过 apt-mark hold linux-image-amd64 并且有两个保留

$ apt-mark showhold
linux-headers-amd64
linux-image-amd64

我正在运行 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux

答案1

A包裹保持不会阻止处理已安装的软件包:

hold 用于将软件包标记为保留,这将阻止该软件包自动安装、升级或删除

在您的情况下,linux-image-6.1.0-18-amd64已经安装(至少部分安装),并且它的配置尝试运行dkms并失败。

由于您仍在运行 6.1.0-17,目前最简单的解决方案是删除 6.1.0-18:

sudo apt purge linux-image-6.1.0-18-amd64

(这也将删除linux-image-amd64)。

一旦修复了故障dkms模块,您就必须linux-image-amd64再次安装才能升级内核。

如果故障是由 NVIDIA 驱动程序引起的,则该问题已经修复了;您应该升级驱动程序而不是删除内核。

答案2

如果您在使用 dkms 时再次遇到此类问题,您可以停止失败的构建,直到发布修复程序。请注意,这只是一种解决方法,而不是解决方案。

检查与

dkms status

涉及哪个模块。

然后显示在下面

/usr/src/name-of-whatever-pachage-which-version/dkms.conf

对于字符串

AUTOINSTALL="yes"

并更改为否。修复错误后不要忘记将其改回来;或者你可以等待建造很长时间。 :D

相关内容