当前位置: 首页>>技术教程>>正文


如何修复“包处于非常糟糕的不一致状态”错误?

,

问题描述

我无法更新我的系统,因为它在安装third-party更新(zramswap-enabler)时冻结了!

有时我在Update Manager中收到以下消息:

Could not initialize the package information An unresolvable problem occurred while initializing the package information.

Please report this bug against the ‘update-manager’ package and include the following error message:

E:The package zramswap-enabler needs to be reinstalled, but I can't find an archive for it.

我试图删除zramswap-enabler,但这是不可能的,因为我得到以下消息:

dpkg: error processing zramswap-enabler (--remove):
 Package is in a very bad inconsistent state - you should
 reinstall it before attempting a removal.
Errors were encountered while processing:
 zramswap-enabler
E: Sub-process /usr/bin/dpkg returned an error code (1)

其实我真的会重新安装那个包,但它无法做到!如果我删除了这个third-party PPA,那么系统会警告我一个非常严重的问题。

那么为什么我不能安装/重新安装/删除/更新此软件包以及为什么在我尝试更新时冻结更新程序?

最佳解决思路

Edited out of the question and added as an answer.

  1. 确保您的PPA已设置完毕。

  2. 通过以下命令删除损坏的包:

    sudo dpkg --remove --force-remove-reinstreq zramswap-enabler
    
  3. 再次安装包:

    sudo apt-get install zramswap-enabler
    
  4. 重启后(不必要),您可以正确安装更新!

实际上你可以解决这个解决方案中的任何“包处于非常糟糕的不一致状态”的问题!

次佳解决思路

在对整个AskUbuntu和Ubuntu论坛进行了大量搜索之后,这对我有用! (Source)。我正在运行Lubuntu 14.04

sudo mv /var/lib/dpkg/info/<packagename>.* /tmp/
sudo dpkg --remove --force-remove-reinstreq <packagename>
sudo apt-get remove <packagename>
sudo apt-get autoremove && sudo apt-get autoclean

第三种解决思路

我的情况比这更糟糕。我不得不通过强制依赖来删除half-installed包。

sudo dpkg --remove --force-remove-reinstreq --force-depends <package-name>

然后我不得不重新安装它们

sudo apt-get -f install

这应该解决任何问题。但是,当您尝试执行此操作时,请确保您具有网络连接。否则,你将不得不经历更多麻烦。

第四种思路

其他答案是正确的,提到一个包删除,然后apt-get install -f重新安装损坏的包(并完全安装其他half-installed包)。但是,这可以一步完成:

sudo apt-get install -f --reinstall zramswap-enabler

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1231.html,未经允许,请勿转载。