软件包管理器坏了?建议的“apt-get -f install”失败了!

软件包管理器坏了?建议的“apt-get -f install”失败了!

我真的不知道发生了什么...我在更新管理器窗口中单击了“安装更新”,但失败了,接下来我知道我无法 apt-get 安装任何软件包,它只是建议我尝试 apt-get -f install,但失败并显示以下消息。

doug@doug-lubuntu:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  libcupsimage2:i386
The following packages will be upgraded:
  libcupsimage2:i386
1 upgraded, 0 newly installed, 0 to remove and 30 not upgraded.
5 not fully installed or removed.
Need to get 0 B/52.5 kB of archives.
After this operation, 1,024 B of additional disk space will be used.
Do you want to continue [Y/n]? y
dpkg: error processing libcupsimage2:i386 (--configure):
 libcupsimage2:i386 1.5.3-0ubuntu1 cannot be configured because libcupsimage2:amd64 is in a different version (1.5.3-0ubuntu2)
dpkg: error processing libcupsimage2 (--configure):
 libcupsimage2:amd64 1.5.3-0ubuntu2 cannot be configured because libcupsimage2:i386 is in a different version (1.5.3-0ubuntu1)
No apport report written because the error message indicates its a followup error from a previous failure.
dpkg: dependency problems prevent configuration of ia32-libs-multiarch:i386:
 ia32-libs-multiarch:i386 depends on libcupsimage2; however:
  Package libcupsimage2:i386 is not configured yet.
dpkg: error processing ia32-libs-multiarch:i386 (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of ia32-libs:
 ia32-libs depends on ia32-libs-multiarch; however:
  Package ia32-libs-multiarch is not installed.
  Package ia32-libs-multiarch:i386 is not configured yet.
dpkg: error processing ia32-libs (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of skype:
 skype depends on ia32-libs; however:
  Package ia32-libs is not configured yet.
dpkg: error processing skype (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
 libcupsimage2:i386
 libcupsimage2
 ia32-libs-multiarch:i386
 ia32-libs
 skype
E: Sub-process /usr/bin/dpkg returned an error code (1)
doug@doug-lubuntu:~$ 

有人能帮助我让我的包管理器正常工作吗?

答案1

通常,当使用 dpkg 或 gdebi 手动安装不匹配的软件包版本而某些依赖项没有得到解决时,就会发生这种情况。(dpkg/gdebi 和其他 .deb 级别的工具会尝试安装依赖关系未得到满足的软件包,使其处于半安装的“未配置”状态,apt 会认为该状态已损坏。apt、软件中心、synaptic 和其他高级软件包管理通常会在安装软件包之前通过读取依赖关系捕获这些错误,并在您破坏之前阻止您,除非错误发生在安装的后期,例如当存储库中的软件包已损坏并尝试写入另一个软件包拥有的文件时发生的情况)

只要引发错误的软件包不是系统关键软件包,并且可以在不导致大量依赖性问题的情况下将其删除,那么解决 apt-get 无法自行解决的此类错误的最快方法就是退出有问题的软件包,直到 apt-get -f install 能够解决问题,然后 apt-get update、apt-get upgrade,最后通过 apt-get 再次尝试您正在执行的操作。

对于您来说,我首先要退出 libcupsimage2:i386 ia32-libs-multiarch:i386 和 skype:

apt-get remove libcupsimage2:i386  ia32-libs-multiarch:i386 ia32-libs skype

如果情况更为复杂,并产生大量失败的依赖关系,那么另一种方法是从依赖关系消息中找出问题所在,并尝试通过命名解决依赖关系问题所需的软件包来指定解决方案。通常,这种情况是由于混合了来自多个存储库(例如 backport 或 PPA)的软件包而引起的,您可以通过指定软件包的特定版本来解决这些问题,该版本由于固定而通常不会被 apt 考虑,或者通过明确告诉 apt-get 返回官方存储库中的版本(除非明确告知,否则 apt-get 不会降级软件包来解决损坏的情况 - 因此,如果您手动安装了较新版本的库,并且系统上的软件包依赖于特定版本,则必须更新其中一个或降级另一个,直到解决依赖关系混乱为止。)

答案2

要删除不匹配的软件包或安装一半的软件包(这些软件包会产生依赖关系问题),请尝试

sudo apt-get autoremove

这将删除不匹配的包。之后,您将能够重新安装包。

相关内容