“在软件包目录修复之前,无法安装或删除项目。”

“在软件包目录修复之前,无法安装或删除项目。”

我刚刚在 10.04 上安装了 Ubuntu 12.04。一切似乎都正常,直到我尝试运行更新。当我启动软件中心时,我收到以下错误消息:

直到修复软件包目录后,才能安装或删除项目。是否要立即修复?

一旦更新管理器完成修复,您就可以关闭它并返回商店。

于是我点击repair然后收到此消息:

包操作失败

软件包安装或删除失败。

所以我点击了OK,它又回到了第一个错误信息

它只是不断重复这两条消息。我该如何修复损坏的东西?我查看了类似问题的答案。我尝试了该链接中的建议,但没有用。我尝试发布结果,但由于我是这个系统的新手,我不能发布超过 2 个链接。然而,问题的关键似乎是这样的:

(Reading database ... 742676 files and directories currently installed.)
Removing libxml-libxml-perl ...
/var/lib/dpkg/info/libxml-libxml-perl.prerm: 11: /var/lib/dpkg/info/libxml-libxml-perl.prerm: update-perl-sax-parsers: not found
dpkg: error processing libxml-libxml-perl (--remove):
 subprocess installed pre-removal script returned error exit status 127
Errors were encountered while processing:
 libxml-libxml-perl
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

当有这样的大更新时,我总是建议格式化硬盘并从 0 开始安装所有内容,如果我们谈论的是 Linux,则理由就更充分了。

您可以编辑 /etc/apt/sources.list 的最后两行

和,

尝试这个:

sudo apt-get update

这将更新您的系统软件列表。

进而,

sudo apt-get install -f

这应该可以修复你的包裹。

如果没有,那么您的包管理器已经损坏,我建议您重新安装 - 但前提是您已尝试了所有其他方法!!!

还:

尝试

sudo apt-get update

更新您的软件包列表。然后

sudo apt-get autoclean

清理任何不完整的包。然后

sudo apt-get clean

清理 apt 缓存。

sudo apt-get autoremove

将清除所有不需要的依赖项。如果在执行此操作时您可以识别损坏的包,此代码将非常强制地将其删除。

sudo dpkg --remove -force --force-remove-reinstreq package name

当然是将包名称更改为真实名称。

问候!

答案2

我总是建议进行全新安装。我对此没有深入的了解,但我认为你应该删除之前注册的所有 PPA。

然后,运行sudo apt-get update并重新启动。

重新启动后,sudo apt-get update再次运行然后sudo apt-get upgrade

如果这不起作用,我认为有一些程序可以帮助您重新制作/etc/apt/sources.list

相关内容