我正在从源代码安装一个包,并生成了 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