我正在对 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