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

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

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

无法初始化包信息初始化包信息时出现无法解决的问题。

请针对’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. 确保您的PPA已设置完毕。

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

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

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

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

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

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

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

 sudo dpkg --remove --force-remove-reinstreq --force-depends  

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

 sudo apt-get -f install 

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

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

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

我想尝试清除我的安装状态,然后再卸载创建问题的任何内容:

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

在大多数情况下解决这个问题的更好方法,并且至少在一个实例中,当另一种方式不起作用时(由于要删除的包的巨大依赖性)帮助了我

我和quagga(路由守护进程)有类似的问题。 只是重新安装包为我工作:

 # apt-get install -f  dpkg: warning: overriding problem because --force enabled: Package is in a very bad inconsistent state - you should reinstall it before attempting a removal. wget http://security.debian.org/debian-security/pool/updates/main/q/quagga/quagga_0.99.22.4-1+wheezy3_i386.deb dpkg -i quagga_0.99.22.4-1+wheezy3_i386.deb 

现在再次确定:

 #apt-get install -f Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 

当我在下载’wireshark’包时从网上断开连接时,我发生了同样的事情。 之后,当我尝试重新安装它时,它抛出相同的错误’包处于一个非常糟糕的不一致状态’。 我已经尝试了所有命令来安装,清除,删除和重新安装,但没有任何工作。 经过一番谷歌搜索后,我偶然发现了一个命令

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libwireshark8_2.2.6+g32dac6a-2ubuntu0.16.04_amd64.deb

(在目录/var/cache/apt/archives/更改libwireshark8_2.2.6+g32dac6a-2ubuntu0.16.04_amd64.deb以及任何正在创建问题的软件包)。

在所有问题得到解决之后。 我再次使用删除了包

sudo apt --purge remove libwireshark8:amd64
sudo apt autoremove完全删除包。

之后,我再次使用: sudo apt-get install wireshark
现在一切顺利!

Rferences:
如何解决“子进程usr bin dpkg返回错误代码1”错误?
修复dpkg错误