dpkg:错误:读取软件包信息文件 /usr/local/var/lib/dpkg/status

dpkg:错误:读取软件包信息文件 /usr/local/var/lib/dpkg/status

我正在从源代码安装一个包,并生成了 checkinstall

dpkg:错误:读取软件包信息文件“/usr/local/var/lib/dpkg/status”:是一个目录

“status”目录丢失了,我去创建了目录,但不知道如何创建信息文件。我可能有一些备份,但不确定要使用哪一个。从我读到的内容来看,我认为 dpkg 已经损坏了。

phantom@AsusK53E:~$ tree -d /usr/local/var/lib/dpkg
/usr/local/var/lib/dpkg
├── alternatives
├── info
├── methods
│   ├── disk
│   ├── floppy
│   ├── ftp
│   ├── mnt
│   └── multicd
├── parts
├── status
└── updates

11 directories

将状态和可用文件从 /var/lib/dpkg 复制到 /usr/local/var/lib/dpkg,并且 checkinstall 顺利完成,没有错误。

答案1

仅创建一个名为 status 的目录并不能满足您的需要。/var/lib/dpkg/status 应该是文件不是目录如下所示:

ll /var/lib/dpkg/status
-rw-r--r-- 1 root root 3466281 May 26 06:17 /var/lib/dpkg/status

假设您所做的错误就是删除状态文件并尝试用目录替换它,您应该能够简单地发出以下命令:

rmdir /var/lib/dpkg/status

sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status

如果你设法移动了整个 /var/lib/dpkg 分支并将其嫁接到 /usr/local 分支,您需要先将其移回。

/var/lib/dpkg分支通常如下所示:

tree -d  /var/lib/dpkg
/var/lib/dpkg
├── alternatives
├── info
├── parts
├── triggers
└── updates

资料来源:厚颜无耻地修改自这个答案这个问题。

相关内容