ubuntu 软件包更新:缺少 /etc/kernel/header_postinst.d/dkms

ubuntu 软件包更新:缺少 /etc/kernel/header_postinst.d/dkms

我正在对 Ubuntu 机器上的软件包进行常规的每周更新,然后出现了问题(TM)。我在“sudo apt upgrade”的输出中看到了这个

Setting up linux-headers-4.15.0-36-generic (4.15.0-36.39) ...
/etc/kernel/header_postinst.d/dkms:
Error! Could not locate dkms.conf file.
File:  does not exist.
run-parts: /etc/kernel/header_postinst.d/dkms exited with return code 4
dpkg: error processing package linux-headers-4.15.0-36-generic (--configure):
 installed linux-headers-4.15.0-36-generic package post-installation script subprocess returned error exit status 1

我见过其他关于修复丢失的 dkms 内容的帖子,但它们似乎都涉及删除文件或目录,而我对于对内核内容执行此操作有点犹豫。

我试过:

sudo apt --fix-broken install

但这似乎是在抱怨同一个丢失的文件。

是否有一些调用可以让 Ubuntu 修复这个错误?

更新:似乎没有什么可以解决这个问题。 sudo apt upgrade两者sudo apt dist-upgrade都尝试安装新的内核,但随后返回

/etc/kernel/postinst.d/dkms: Error! Could not locate dkms.conf file. File: does not exist.

其次是

Errors were encountered while processing: linux-headers-4.15.0-36-generic linux-headers-4.15.0-38-generic linux-headers-generic linux-generic linux-image-4.15.0-36-generic linux-image-4.15.0-38-generic E: Sub-process /usr/bin/dpkg returned an error code (1)

我开始觉得我彻底完蛋了,除了重新安装 Ubuntu 之外别无选择(再次,叹息)。

答案1

花了一段时间才找到它,但我终于找到它了。

首先,运行此命令来查找有问题的“东西”

for i in /var/lib/dkms/*/[^k]*/source; do [ -e "$i" ] || echo "$i";done

就我而言,它吐出来了

/var/lib/dkms/nvidia-340/340.106/source

深吸一口气,摆脱那个目录

sudo rm -Rf /var/lib/dkms/nvidia-340/340.106/source

现在运行更新:

sudo apt upgrade

脚注/鸣谢:

https://bbs.archlinux.org/viewtopic.php?id=151965

https://8thstring.blogspot.com/2012/01/error-could-not-locate-dkmsconf-file.html

相关内容