在 Ubuntu 16.04 上,当我安装任何软件包时,它会显示(例如):
# apt install links
... Selecting previously unselected package links.
dpkg: unrecoverable fatal error, aborting:
unable to open files list file for package 'libtool': No such device or address
E: Sub-process /usr/bin/dpkg returned an error code (2)
我从未见过No such device or address
的错误apt
。由于会显示简单的文件丢失No such file or directory
,我认为这可能是由最近的计算机崩溃引起的:磁盘必须重建其坏块列表,尽管它现在启动时没有磁盘错误dmesg
,也没有 的错误fsck
。
为了解决“列出文件”投诉,我严格遵循了另一个主题中的建议:首先执行了apt clean
(对上述错误没有影响),然后尝试删除所有文件/var/lib/apt/lists
并使用(同样没有影响)重新生成它们apt update
。尝试删除libtool
包也失败并出现相同错误。
我被困住了,无法找到No such device or address
错误所指的内容。如果事实证明是磁盘问题而不是 apt 问题,至少如果我知道有问题的文件,它可能会被清除并以某种方式重新创建。
答案1
你应该试试下列的脚步。
- 进入 /var/lib/dpkg 目录
- 备份“状态”文件
- 编辑“状态”文件
- 搜索出现错误的包
- 只需从该包中删除这些行(但保留涉及其他包的所有其他行,即使它们在“替换”或“依赖”字段中包含损坏的包)
- 保存“状态”文件中的更改
- 跑步:
sudo dpkg dpkg --configure -a
- 强制重新安装缺少的依赖项(因为现在有一些):
sudo apt-get -f install
我认为如果损坏的包不依赖于任何其他包(可能很少见),只需重新安装它:sudo apt-get install the_package
如果仍然失败,请告诉我。