我应该如何处理阻止我安装最新内核更新的“包包含空文件名”问题?

我应该如何处理阻止我安装最新内核更新的“包包含空文件名”问题?

我刚刚尝试安装最新的内核更新,但在软件包中失败linux-modules-extra-5.4.0-109-generic并显示以下输出:(用户名和主机名不是真实的;)

user@laptop:~$ sudo apt full-upgrade -y
Läser paketlistor… Färdig
Bygger beroendeträd       
Läser tillståndsinformation… Färdig
Beräknar uppgradering… Färdig
Följande NYA paket kommer att installeras:
  linux-headers-5.4.0-120 linux-headers-5.4.0-120-generic linux-image-5.4.0-120-generic linux-modules-5.4.0-120-generic linux-modules-extra-5.4.0-120-generic
Följande paket kommer att uppgraderas:
  apt apt-utils bluetooth bluez bluez-cups bluez-obexd ca-certificates e2fsprogs ffmpeg firefox firefox-locale-de firefox-locale-en firefox-locale-sv intel-microcode libapt-pkg6.0 libavcodec-extra libavcodec-extra58
  libavcodec-extra58:i386 libavdevice58 libavfilter7 libavformat58 libavresample4 libavutil56 libavutil56:i386 libbluetooth3 libcom-err2 libcom-err2:i386 libext2fs2 liblouis-data liblouis20 libpostproc55 libss2 libswresample3
  libswresample3:i386 libswscale5 linux-generic linux-headers-generic linux-image-generic linux-libc-dev logsave python3-louis
41 att uppgradera, 5 att nyinstallera, 0 att ta bort och 0 att inte uppgradera.
33 standard security updates
Behöver hämta 0 B/167 MB arkiv.
Efter denna åtgärd kommer ytterligare 382 MB utrymme användas på disken.
Plockar ut mallar från paketen: 100%
Förkonfigurerar paket ...
dpkg: ej återhämtningsbart allvarligt fel, avbryter:
 fillistfilen för paketet "linux-modules-extra-5.4.0-109-generic" innehåller tomt filnamn
E: Sub-process /usr/bin/dpkg returned an error code (2)
user@laptop:~$ 

对于那些不理解上面瑞典语输出的人,这里有相同的输出,由我粗略翻译:

user@laptop:~$ sudo apt full-upgrade -y
Reading package lists... Complete
Building dependency tree       
Reading package states… Complete
Calculating upgrade… Complete
The following NEW packages will be installed:
  linux-headers-5.4.0-120 linux-headers-5.4.0-120-generic linux-image-5.4.0-120-generic linux-modules-5.4.0-120-generic linux-modules-extra-5.4.0-120-generic
The following packages will be updated:
  apt apt-utils bluetooth bluez bluez-cups bluez-obexd ca-certificates e2fsprogs ffmpeg firefox firefox-locale-de firefox-locale-en firefox-locale-sv intel-microcode libapt-pkg6.0 libavcodec-extra libavcodec-extra58
  libavcodec-extra58:i386 libavdevice58 libavfilter7 libavformat58 libavresample4 libavutil56 libavutil56:i386 libbluetooth3 libcom-err2 libcom-err2:i386 libext2fs2 liblouis-data liblouis20 libpostproc55 libss2 libswresample3
  libswresample3:i386 libswscale5 linux-generic linux-headers-generic linux-image-generic linux-libc-dev logsave python3-louis
41 to update, 5 to newly install, 0 to uninstall and 0 to upgrade.
33 standard security updates
Need to download 0 B/167 MB of archives.
After this action additional 382 MB of disk space will be used.
Choosing templates from packages: 100%
Preconfiguring package ...
dpkg: unrecoverable error, cancelling:
 the file list file for "linux-modules-extra-5.4.0-109-generic" contains empty file name
E: Sub-process /usr/bin/dpkg returned an error code (2)
user@laptop:~$ 

sudo apt upgrade -y给出完全相同的输出。是的,我sudo apt update在几秒钟前运行并尝试升级几次,同时在每次尝试后清除缓存。
我想完成更新,因为在此过程中没有其他更新,单独更新每个包会太乏味。另外,我想要拥有最新的内核,当必要的软件包无法安装时这是不可能的。我可以通过打开包、搜索损坏的文件并修复问题(可能是与语法相关的问题......)来手动修复包吗?还是我应该等待下一次更新?

答案1

由于问题中显示的错误,每个包操作都失败。我发现了问题所在:
我不小心从 /dev/sda (这是我的启动驱动器)启动了 qemu VM,因此第二个启动的 Linux Mint 实例执行了启动例程,当我再次关闭它时,它执行了关机程序。这弄乱了出现错误的包的文件列表。当我用 xed 打开它时,它包含许多无效字符和一些似乎是被撕碎的日志消息的文本。没有任何东西与文件路径非常相似,并且该文件的大小约为 35MB(这不是我期望从文件列表中获得的大小!)。

然后我发现删除损坏的列表并重新安装软件包会有所帮助 - 确实如此!

相关内容