ubuntu22.04解决package `***‘ contains empty filename

问题描述

在Ubuntu22.04系统上安装软件时,遭遇到如下报错

dpkg: unrecoverable fatal error, aborting:  files list file for package `fonts-tlwg-kinnari' contains empty filename
E: Sub-process /usr/bin/dpkg returned an error code (2)

问题原因

此类报错通常由于软件包的文件列表(位于/var/lib/dpkg/info/目录下的.list文件)格式异常导致。可能是:

文件末尾缺少换行符
列表中存在无效的空文件名

解决步骤

  1. 下载对应软件包
    通过apt获取出错的deb安装包(以fonts-tlwg-kinnari为例):
sudo apt-get download fonts-tlwg-kinnari
  1. 重建文件列表
    解析deb包内容并生成标准文件列表:
    创建一个shell文件或直接运行下面命令:
sudo dpkg -c /var/cache/apt/archives/fonts-tlwg-kinnari_1%3a0.5.1-3_all.deb | \
awk '{
    if ($6 == "./") { print "/."; }
    else if (substr($6, length($6), 1) == "/") { 
        print substr($6, 2, length($6) - 2); 
    }
    else { 
        print substr($6, 2, length($6) - 1);
    }
}' > /var/lib/dpkg/info/fonts-tlwg-kinnari.list

注意事项
替换包名:实际操作时请将fonts-tlwg-kinnari替换为报错提示中的具体包名
​路径验证:确认/var/cache/apt/archives/中对应的deb文件名与实际下载路径一致
​权限要求:需使用sudo获取写入/var/lib/dpkg/info/目录的权限

参考链接

I get this error: dpkg: unrecoverable fatal error, aborting: files list file for package `fonts-tlwg-kinnari’ contains empty filename

你可能感兴趣的:(ubuntu)