dpkg:错误:无法扫描更新目录`/var/lib/dpkg/updates/'

sob*_*bia 2 package-management apt dpkg software-installation

我想在 Ubuntu 14.04 中安装一个软件包,但每次运行./configure命令时都会出现此错误:

E: Cannot get debconf version. Is debconf installed?
debconf: apt-extracttemplates failed: No such file or directory
Extracting templates from packages: 35%E: Cannot get debconf version. Is debconf installed?
debconf: apt-extracttemplates failed: No such file or directory
Extracting templates from packages: 70%E: Cannot get debconf version. Is debconf installed?
debconf: apt-extracttemplates failed: No such file or directory
Extracting templates from packages: 100%
dpkg: error: cannot scan updates directory `/var/lib/dpkg/updates/': No such file or directory
E: Sub-process /usr/bin/dpkg returned an error code (2)
Run Code Online (Sandbox Code Playgroud)

Ard*_*nel 5

似乎您对目录做了一些可怕的事情,/var/lib/dpkg请参阅此处的帖子以了解有关dpkg 此的更多信息

回到你的问题,要解决问题,你应该尝试做以下事情,

第一个选项

status仅当目录出错时才返回目录。

sudo mkdir /var/lib/dpkg/updates
Run Code Online (Sandbox Code Playgroud)

然后做

sudo apt-get update
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

然后正常安装软件包

第二个选项(这个解决方案假设你已经完全搞砸了 /var/lib/dpkg

恢复/dpkg/status/ 来自/var/backups//var/lib/dpkg/因为status保存数据库的备份dpkg,您可能能够恢复数据库,一切都会恢复正常。

在dir/var/backups/你将有类似的文件夹dpkg.status.0,并压缩文件dpkg.status.1dpkg.status.2等等,这是我们的目标,我们将使用备份的备份dpkg.status.0,恢复,请执行以下操作:

由于您已经拥有 dir/var/lib/dpkg
将备份复制到该目录

sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/
Run Code Online (Sandbox Code Playgroud)

注意:最新的备份是dpkg.status.0文件,但如果你想从存档文件备份,即dpkg.status.#.gz

sudo cp /var/backups/dpkg.status.#.gz /var/lib/dpkg/

gunzip -d /var/lib/dpkg/dpkg.status.#.gz
Run Code Online (Sandbox Code Playgroud)

然后重命名dpkg.status.#statusdpkg.status.0

sudo mv /var/lib/dpkg/dpkg.status.0 /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud)

然后创建文件夹 update

sudo mkdir /var/lib/dpkg/update
Run Code Online (Sandbox Code Playgroud)

然后sudo apt-get updatesudo apt-get upgrade

之后就可以正常安装软件了!