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

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

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

有时我在更新管理器中收到以下消息:

无法初始化包信息初始化包信息时发生无法解决的问题。

请报告针对“update-manager”包的这个错误并包含以下错误消息:

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)

其实我真的想重新安装这个包,但系统无法做到这一点!如果我删除这个第三方 PPA,系统就会警告我一个非常非常严重的问题。

那么为什么我无法安装/重新安装/删除/更新这个软件包,以及为什么如果我尝试更新的话更新程序会冻结?

答案1

编辑掉问题并添加为答案。

  1. 确保您的 PPA 已设置。

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

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

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

实际上,您可以使用此解决方案修复任何“包处于非常糟糕的不一致状态”问题!

答案2

在搜索了整个 AskUbuntu 和 Ubuntu 论坛之后,这个方法对我很有用!(来源)我正在运行 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

答案3

我遇到过比这更糟糕的情况。我不得不通过强制依赖来删除半安装的软件包。

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

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

sudo apt-get -f install

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

答案4

我会尝试清理我的安装状态,然后再卸载造成问题的任何内容:

apt-get autoclean
apt-get update
apt-get upgrade
apt-get install -f

在大多数情况下,这是一个更好的方法来解决这个问题,至少有一次在其他方法行不通的时候帮助了我(因为巨大的要删除的软件包的依赖项)

相关内容