添加PPA后如何解决未满足的依赖关系?


540

有时,当我安装东西时,会出现类似以下的错误:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 package1 : Depends: package2 (>= 1.8) but 1.7.5-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

我该如何解决?


33
忘记确切的软件包名称。这与这个问题无关。我正在尝试提出一个规范的问题。因此,确切的软件包与该特定实例无关。
jrg

33
实际上,“确切的包裹名称”虽然与您的问题无关,但在这方面与任何个人的问题都极为相关。通常,解决此问题的最佳第一步是确定pkg1和pkg2的来源。答案似乎忽略了这一点,否则大多数答案都很好。另外没有注意到的是,在很多情况下(即使不是大多数情况下),“要安装<whatever>”实际上表示“已安装<whatever>”。这会使许多用户对此感到困惑,并且也应包含在以下答案中
doug 2012年

5
@doug添加为答案,而不是评论,这非常好!:)
jrg

1
@Braiam Whaaaat确实有一个要点,这个问题不是PPA特有的,很多答案也不是。我知道前两个答案会使其他答案有些不知所措,但是我不确定改变问题的性质是否是正确的解决方案,尤其是因为您取消了其他答案。由于我没有更好的答案,所以我暂时离开,但这是需要考虑的事情。
赛斯

2
哦,我的疑难排解问题在哪里?:D
塞斯

Answers:


561

APT是用于Debian和其他基于Linux发行版的软件包管理系统,例如Ubuntu。在大多数情况下,APT易于安装,删除和更新软件包。在极少数情况下,通常当您混入第三方依赖项时,最终有机会apt-get出现错误,告诉您软件包安装无法完成。

解决方案:

备份像/etc/apt/sources.list这样的配置文件总是一个好主意,因此您可以根据需要还原更改。

  • 如果error显示如下所示:

    <some-package>: Depends: <other-package> (= version) but this-version is to be installed

    然后确保已启用restricteduniverse存储库。按Alt+ F2,键入software-properties-gtk并按Enter

    Ubuntu Software选项卡下,启用所有存储库。

  • 依赖关系未满足的一种可能原因是软件包数据库损坏,和/或某些软件包安装不正确。要解决此问题,请按Alt+ Ctrl+ T打开终端并尝试运行以下命令之一:

    须藤apt-get clean

    要么,

    须藤apt-get autoclean

    apt-get clean清除检索到的软件包文件(.deb文件)的本地存储库。它从/ var / cache / apt / archives /和/ var / cache / apt / archives / partial /中删除除锁定文件之外的所有内容。apt-get autoclean清除检索到的程序包文件的本地存储库,但与不同apt-get clean,它仅删除不再下载的程序包文件,这些文件在很大程度上没有用。

  • 解决依赖关系问题的最基本修补程序之一是运行:

    sudo apt-get -f安装

    -f这里代表“破镜重圆”。Apt将尝试纠正破坏的依赖关系。如果您手动安装了具有未满足依赖性的程序包apt-get,则将尽可能安装这些依赖性,否则,它可能只是删除您安装的程序包以解决问题。

    然后运行:

    sudo dpkg-配置-a

    然后再次运行:

    sudo apt-get -f安装

    如果输出为:

    0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

    这意味着它失败了。

  • 下一个解决方案是运行:

    须藤apt-get -u dist-upgrade

    如果显示任何保留的软件包,则最好将其删除。软件包由于apt无法解决的依赖关系冲突而被保留。尝试使用以下命令查找并修复冲突:

    sudo apt-get -o Debug :: pkgProblemResolver =是dist升级

    如果无法解决冲突,它将退出并显示:

    0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.

    dist-upgrade每次运行时,逐个删除保留的软件包,直到没有更多保留的软件包为止。然后重新安装所有需要的软件包。确保使用该--dry-run选项,以便您充分了解后果:

    sudo apt-get remove --dry-run包名

    由于删除您尝试安装的软件包可能不是理想的选择,因此您还可以尝试找到一个具有满足依赖性所需的软件包的存储库。

最后,如果其他所有方法均失败,则可以尝试自己找到依赖项,方法是查找并安装必要的软件包,或者从源代码安装它们,然后为它们创建“ deb ”软件包。

禁用/删除/清除PPA:

PPA(个人软件包存档)是托管在Launchpad上的存储库。您可以使用PPA安装或升级Ubuntu官方存储库中不提供的软件包。

PPA是导致未满足依赖项的最常见原因之一,尤其是在升级Ubuntu存储库中的现有软件包时。要解决该问题,您可以使用三个选项:禁用,清除(恢复到Ubuntu存储库中的原始软件包)或删除PPA。

  • 禁用:

    禁用PPA意味着不再需要更新从该PPA安装的软件包。禁用PPA:打开Software Center > Edit > Software Sources或,

    Alt+ F2并运行software-properties-gtk

    单击Other Software选项卡,您将在此处看到每个PPA都有两行,一行用于编译的软件包,一行用于源代码,Uncheck这两行都禁用PPA。在这里您还可以添加和删除PPA。

  • 清除:

    清除PPA意味着将所选PPA中的软件包降级到官方Ubuntu存储库中的版本,并禁用该PPA。PPA Purge正是这样做的。要安装PPA Purge,请运行以下命令:

    须藤apt-get install ppa-purge

但是,考虑到问题apt已解决,上述命令将失败。所以用这个命令

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

要使用PPA清除:

sudo ppa-purge ppa:someppa / ppa

如果“ ppa-purge”命令由于某些原因失败,则除非重新启用PPA,否则您将无法再次运行“ ppa-purge”(要启用PPA,请执行与禁用PPA相同的步骤,并Check同时禁用特定行的两行PPA启用它)。

注意:PPA Purge不会删除PPA(可能在将来),因此您必须手动删除PPA。

  • 去掉:

    如果从PPA安装的软件包在官方的Ubuntu存储库中不存在,PPA Purge则不建议使用,因为没有什么可以降级的,PPA Purge也不会删除。要删除PPA和已安装的软件包,请运行以下命令:(如果您不想删除已安装的软件包,请忽略第一个命令)

    sudo apt-get autoremove --purge软件包名称
    sudo add-apt-repository-删除ppa:someppa / ppa
    须藤apt-get autoclean
    

或者,您可以Y PPA Manager用来禁用/删除/清除PPA(答案末尾的详细信息)。

预防措施:

那么我们如何才能避免这种情况的发生呢?

  • 使Ubuntu保持最新。Ubuntu会在可用更新时自动通知,您也可以通过Session Indicator在Unity面板中单击来检查可用更新:

    或者,按Alt+ Ctrl+ T打开终端并运行以下命令:

    sudo apt-get更新
    sudo apt-get升级

    更新:将可用软件包列表与源存储库中的服务器同步。升级:下载并安装已安装软件包的任何较新版本。

  • 如果您决定将其他存储库添加到sources.list,请确保该存储库旨在与Ubuntu一起使用(并已知可以使用)。不适用于您的Ubuntu版本的存储库可能会导致系统不一致,并可能迫使您重新安装。另外,请确保您确实需要添加外部存储库,因为您正在寻找的软件包可能已经引入了官方存储库!资源
  • 删除重复的PPA。Y PPA Manager(答案末尾的安装指南)可以轻松扫描并删除重复的PPA。

    • 点击Alt+ F2并运行y-ppa-manager以打开Y PPA Manager。
    • 一旦打开,双击或打EnterAdvanced
    • 在出现的窗口中,选择Scan and remove duplicate PPAs并单击确定。

在此处输入图片说明

获得帮助:

Askubuntu或任何其他帮助论坛上寻求帮助时,应在问题中包含以下命令的输出:

  • 实际错误输出:

    sudo apt-get安装软件包名称
  • 这将显示您的sources.list:

    猫/etc/apt/sources.list
  • 这将显示PPA列表(如果有):

    猫/etc/apt/sources.list.d/*

其他来源:


Y PPA Manager Y PPA Manager是一站式服务,可满足您所有的PPA需求。

y PPA经理

以下是其一些功能:

  • 在所有Launchpad PPA中搜索软件包
  • 列出并下载PPA中的软件包
  • 添加/删除/清除PPA
  • 备份和还原PPA源
  • 删除重复的PPA来源

要安装Y PPA Manager,请点击Alt+ Ctrl+ 打开终端T并运行以下命令:

sudo add-apt-repository ppa:webupd8team / y-ppa-manager
sudo apt-get更新
须藤apt-get install y-ppa-manager

考虑到该问题apt已损坏,因此请使用这些命令

sudo su

32位:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64位:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb

3
如果apt损坏,如何安装未满足的偏差?
快球

4
这对我来说是一个巨大的帮助... Lubuntu 12.04的全新安装,无法安装gvim(vim-gtk)或openssh-server等基本内容。我尝试了各种命令行选项,包括从这台计算机和另一台计算机(在运行Xubuntu的情况下正常运行)对/etc/apt/sources.list进行了不同的处理。遵循本指南后,我发现在Software-properties-gtk中,未选中“主要”存储库的框!问题解决了!
memilanuk 2012年

1
有时您确实持有破损的包裹...因此,最好的办法是将其放开并删除。参见askubuntu.com/a/363244/16395
Rmano 2014年

3
没有人真正回答过如何安装具有未满足的依赖版本的软件包。神!我只想强制安装较旧版本的软件包。
海军陆战队2014年

3
这对我不起作用:S
AlvaroAV

87

注意:所有要求运行的命令必须在终端中运行,可以通过Ctrl+ Alt+ T或在破折号中搜索终端来打开。

真的坏了吗?

尝试运行以下命令,然后尝试重新安装您要安装的软件

sudo apt-get update

表演前步骤

备份

备份以下文件:

  • /etc/apt/sources.list
  • /var/lib/dpkg/status

为此,请使用以下命令

sudo cp /etc/apt/sources.list /etc/apt/sources.list.original

sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.original

清除您的apt-cache

apt保留最近下载的程序包的缓存,以在需要安装时节省带宽。在某些情况下可能适得其反

现在,要清洁它,您有两种选择

sudo apt-get clean 

这将删除属于该文件夹的所有缓存软件包/var/cache/apt/archives//var/cache/apt/archives/partial但.lock文件除外。推荐这个

sudo apt-get autoclean

这将扫描文件夹/var/cache/apt/archives//var/cache/apt/archives/partial检查程序包是否仍在存储库中,并删除那些不是


修复依赖关系

使用apt的修复破坏模式

sudo apt-get -f install

这将导致易于扫描缺少的依赖项并从存储库中修复它们

如果输出表明没有安装或升级任何新产品,则它已失败。


检查是否已启用所有必需的源

输入gksu software-properties-gtk,您将获得此窗口

确保所有来源均已启用。

接下来,转到“其他软件”选项卡,检查是否存在并启用了要安装的软件所需的PPA。另外,请尝试禁用某些可能有损坏的PPA的PPA

现在,跑 sudo apt-get update

立即尝试安装软件

选择一个更好的服务器从中下载

输入gksu software-properties-gtk,您将获得此窗口

单击下拉列表中的下载,然后选择其他

单击选择最佳服务器

sudo apt-get update

尝试安装软件

另外,尝试使用 sudo apt-get install -f


PPA清除

这是用于清除损坏/不需要的PPA及其应用程序的工具

要安装它,运行

sudo apt-get install ppa-purge

但是,考虑到该问题apt已损坏,因此上述命令将失败。所以用这个命令

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

现在使用ppa清除

sudo ppa-purge ppa:someppa/ppa  

Y-PPA经理

Y-PPA Manager是一款gui应用程序,可帮助您管理PPA及其相关的各种问题

要安装它

sudo add-apt-repository ppa:webupd8team/y-ppa-manager

sudo apt-get update

sudo apt-get install y-ppa-manager

考虑到问题,apt所以坏了,改用这些命令

sudo su

32位:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64位:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb

现在输入 y-ppa-manager

您会看到此窗口

双击高级,您将获得此窗口

执行以下以黑色概述的任务


预防胜于治疗

最好不要在AskUbuntu:D上搜索此问题

因此,以下是确保您安全的准则

保持系统最新

总是定期运行以下命令

sudo apt-get update&&sudo apt-get upgrade

或者,您始终可以通过此命令使用Update Manager

gksu update-manager

仅使用受信任的PPA

仅使用打算在Ubuntu上使用的PPA,仅将PPA与可信赖的来源一起使用。实际上,该软件包可能已经在ubuntu存储库中

在情况良好时进行备份,然后再进行恢复

为此,您需要Y-PPA-Manager。上面给出了安装它的步骤。

运行此命令以打开Y-PPA-Manager

y-ppa-manager

您会看到此窗口

双击高级,您将获得此窗口

运行这个:

系统会要求您使用与下面类似的对话框来保存tar.gz文件。将其保存在另一个分区或安全的地方

稍后,当您需要再次还原它时,请遵循类似的步骤,当您进入高级对话框时,请单击以下按钮:

系统将要求您从以前保存的上一个备份中还原,并显示一个类似于以下内容的对话框


还是行不通?

程序包相关性错误并不总是通用的,并且取决于要安装的程序包。

如果按照给出的所有步骤修复错误对您不起作用,则可以随时在Ask Ubuntu询问

这是一些您需要发布输出的命令

sudo apt-get install packagename

cat /etc/apt/sources.list

cat /etc/apt/sources.list.d/*

(感谢Basharat Sial

您还需要输出其他文件/命令,这些文件/命令可能是特定于错误的,用户可能会在注释中提示您发布文件/命令。


我会放在apt-get update列表的顶部。有时您的系统进行了一次更新,其中一个较新的软件包已被远程更新,但是它所依赖的一个软件包尚未完成构建。或者您本地缓存中的版本已更新。在这种情况下,简单的操作apt-get update将更新您的本地缓存,您可以继续进行。
Hamish Downer 2012年

1
一流的答案!这只是让我希望apt和或dpkg具有更好的保护,以确保它们不会陷入这些卡住的损坏状态,或者能够更好地解决它们。我以前曾遇到过这个问题,当apt-get install -f不解决它时感到非常沮丧。
杰夫·威灵

您可能还希望包括以下警告:“永远不要在启用PPA时升级系统,先禁用它们,然后再升级”,因为,如果升级到PPA版本,然后PPA失效,则最终意味着您已死亡。您不能将整个系统降级到较低的版本号,也不能从标准存储库安装某些东西,因为来自标准存储库的软件包与所安装的PPA软件包存在冲突。
安瓦尔2012年

2
选择一个更好的服务器为我修复它。谢谢!
昂恩(Huang Huynh),2015年

我认为该-f旗帜代表武力,始终避免使用它
user907860 '16

38

到目前为止,这些答案都集中在如何自动解决此问题上,主要是希望它能够解决问题,而不是集中于了解如何调查依赖关系。尝试进行诸如确保您的软件包列表是最新的之类的事情很重要,因为您需要确保简单的更新或清除缓存在深入研究之前不能解决问题。如果幕后的一切都按预期进行,那么了解如何理解依赖关系至关重要。有时,依赖关系的层次看起来似乎是压倒性的,但是概念很简单,是理解在Ubuntu系统中如何安装/卸载软件的关键。

我强烈推荐资质使用像Ubuntu一个.deb为基础的系统的人。它的树结构使您可以轻松浏览依赖关系,包括推荐和建议的软件包,以及可视化冲突和未满足的依赖关系。对于apt-get无法提供简单的解决方案以及可视化依赖关系而言,它是一种宝贵的工具。(Synaptic在Ubuntu中也可用,但是我觉得它不那么直观。)

Aptitude还提供了一个冲突解决程序,它将引导您完成已安装/已删除/已升级/等程序包的所有可能组合,从而满足所有需求而不会发生冲突或问题。即使apt无法找到解决方案,这也可能成功。作为Ubuntu用户,通常不会出现需要您调查为什么安装该特定软件包的情况,但是随着您使用该系统的增多,这几乎是不可避免的。


3
投票提及Aptitude冲突解决程序。有时必须使用这样的高级工具来确定可能的可能性并查明核心冲突。
John S Gruber 2012年

3
这实际上可能是该线程中的最佳答案。甚至可以使用有关aptitude的冲突解决程序的入门教程进行改进。
路易·德·索萨

2
这个环节,虽然它没有解释的依赖,或者他们的一般概念,确实显示互动式变压器的快速教程:aptitude.alioth.debian.org/doc/en/ch02s03s03.html
overprescribed

1
面对GTK3冲突,+ 1才智挽救了我的培根。apt-get根本没有帮助。
克里斯·拉普兰特

1
我喜欢的是sudo aptitude --full-resolver my_package。通常会给出The following packages have unmet dependencies一个列表,其中7) <my_package> [Not Installed](7个仅是示例)。aptitude在每一步都提供了新的选择。对我有用的是先选择7,然后选择r 7(对应于说明Rejecting the removal of my_package),然后选择n (对于否)作为之前的选择,但这并不是我想要的:但是 在那之后, 新的选择提供了一些软件包的降级以及安装my_package的选择。因此,最后一次Y((是))

24

package1:取决于:package2(> = 1.8)但要安装1.7.5-1ubuntu1

消息说明:

  1. 为了完成安装,package1需要package2。
  2. package2必须在版本> = 1.8中可用
  3. 程序包管理器检查了所有存储库,仅找到可以安装的版本1.7.5-1ubuntu1,由于版本<1.8,它不会执行。

固定

这个问题没有一个正确的答案,也没有简单的答案。

发生这种情况的原因有很多,因此必须调查所有选项并尝试解决导致此错误的前提条件。

方案A:

您可以访问的所有存储库都没有版本> = 1.8的package2,因此您必须找到一个可以使用的package2。如果找不到版本> = 1.8的存储库,则可能必须从源代码构建和安装package2。然后尝试安装package1。

如果您想知道如何从源代码构建软件包,请检查其他问题/答案或发布新的问题/答案。

方案B:

存储库的确包含版本大于等于1.8的package2,但程序包管理器仍希望安装较旧的版本(1.7.5)。

造成这种情况的原因可能是,package2的更高版本是由某些较新的技术构建的,而您已安装的其他软件包不支持该版本。

这可能根本无法修复。您可以尝试使用apt或synaptic,并在存储库中查找package2的所有版本,并尝试安装> = 1.8的特定版本。

如果您还有其他不兼容的软件包,并且这样做,您将获得所有其他软件包的类似错误消息列表,这些错误消息会阻止安装package2> = 1.8。

在这种情况下,您会有更大的问题。您想安装package1,它需要package2> = 1.8,但版本> = 1.8的package2要求package3版本> = 6.7,并且您的package3版本为6.3。

问题是,程序包管理器(APT)尽可能尝试自动解决所有这些依赖项。当它说不可能(并发出类似问题的消息)时,您应该信任它。

如果您决定不信任软件包管理器,并且确定不会出现问题,则可以尝试强制一个接一个地强制安装所有软件包的特定所需版本,并希望可以。

注意,对系统软件包执行此操作可能会导致严重的问题。您可以将自己锁定在系统之外,阻止关键服务等。

方案C:

不管问题的原因是什么,您始终可以设置为手动编译,并从源代码中以确切所需的版本来构建所需的包及其所有依赖项。使用此选项,您可以将构建的内容保留在单独的目录中,并且不在系统路径中,这样就不会与系统产生冲突。这可能是最干净的解决方案,有时可以做得更快。

方案D:

软件包管理器有权访问有关软件包的过时信息,因此无法找到解决方案。看看其他答案。

方案E:

程序包管理器在依赖关系解析代码中存在错误。

您必须调查确实如此,然后发出错误请求。

...

方案Z:

可能还有其他情况。

例如,软件包维护者可能是错误的,即使在package2 <1.8的版本中也不能检查package1是否可以正常工作,并且在规范中他们设置了错误的依赖关系。


17

每当您对未满足的依赖关系有误时,都必须遵循这些方法

按照说明进行操作后,尝试安装软件。这些方法中的至少一种为您工作

1。在尝试任何新命令或添加任何新的ppa之前,请尝试此操作

清理apt缓存:

sudo apt-get clean

清理所有未使用的依赖项:

sudo apt-get autoremove

更新apt-cache

sudo apt-get update

这将删除所有缓存并下载新的缓存。应该这样做以获得新的缓存包和较新的更新。

2。尝试sudo apt-get install -f

它可能会提供一些有关删除和安装软件包的建议,并采取合理的措施。

3。更改源Download ServerSoftware Sources因为有时服务器上的文件已损坏。

在此处输入图片说明
在此处输入图片说明
在此处输入图片说明

4。如果您之前为损坏的依赖关系添加了外部ppa,也会发生这种情况。

  • 键入sudo add-apt-repository --remove ppa:someppa/ppa然后手动删除ppa安装的文件/库

要么

  • 清除PPA(这也会删除已安装的文件)

    sudo apt-get install ppa-purge   #a one time install 
    sudo ppa-purge ppa:someppa/ppa  
    

5。如果不是4,那么请至少尝试删除显示为损坏的依赖关系的软件包,然后再次尝试安装。据报道,该软件包已经为许多人使用。

6。始终添加存储库/ PPA的稳定版本。

在此处输入图片说明

7还要确保已启用所有正式存储库(在中Software Sources

在此处输入图片说明

请不要启用Proposed Updates它们,因为它们是用于测试/开发人员的。

在此处输入图片说明


正如道格所说:

通常,解决此问题的最佳第一步是确定<pkg1>&的来源<pkg2>

另外没有指出的是,在很多情况下(即使不是大多数情况下),“要安装<whatever>”实际上表示“已安装<whatever>”,如果没有其他作用,则应尝试将其删除(如第5点所示)。


我将继续添加更多无法解决的问题unmet dependencies


3
@Ashu你可能要fix--一件事apt-get update没有更新容易缓存(其中包括下载的.deb文件和存储有关该信息的文件,.deb文件已保存)。它更新软件包索引文件(包含有关从每个可用软件源下载和安装哪些软件包的信息)。正如我之前所说,apt-get clean不会清除apt-get update更新的内容。有关man apt-get详细信息,请参见。
伊利亚·卡根

16

在大多数情况下,通过安装该软件包aptitude可以解决未满足的依赖关系。默认情况下aptitude,您的计算机上未安装默认软件包。因此,请先通过运行来安装它,

sudo apt-get update
sudo apt-get install aptitude

然后,

sudo aptitude install packagename

例如,

    
avinash @ avinash-Lenovo-IdeaPad-Z500:〜$ sudo apt-get install ubuntu-sdk
正在阅读包装清单...完成
建立依赖树       
正在读取状态信息...完成
无法安装某些软件包。这可能意味着您有
请求不可能的情况,或者您使用的是不稳定情况
分发一些尚未创建的必需软件包
或已移出“收入”。
以下信息可能有助于解决该情况:

以下软件包具有未满足的依赖性:
 ubuntu-sdk:取决于:qtcreator-plugin-ubuntu,但是不会被安装
E:无法纠正问题,您拿着破碎的包装。

通过安装软件包 aptitude

avinash @ avinash-Lenovo-IdeaPad-Z500:〜$ sudo aptitude安装ubuntu-sdk
将安装以下新软件包:
  apparmor-easyprof {a} apparmor-easyprof-ubuntu {a}位于{a}必不可少的{a} 
  click {a} click-apparmor {a} click-dev {a} click-doc {a} cordova-ubuntu-2.8 
  cordova-ubuntu-2.8-examples {a} debhelper {a} devscripts {a} dh-apparmor {a} 
  dh-make {a}发行信息数据{a} dpkg-dev {a} dput {a} g ++ {a} g ++-4.8 {a} 
  geoclue-gypsy {a} libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-perl {a} libboost-filesystem1.53.0 {a} 
  libboost-program-options1.53.0 {a} libboost-regex1.53.0 {a} 
  libbotan-1.10-0 {a} libdee-qt5-3 {a} libdistro-info-perl {a} 
  libexporter-lite-perl {a} libglib2.0-dev {a} 
  libgstreamer-plugins-base1.0-dev {a} libgstreamer1.0-dev {a} libgypsy0 {a} 
  libhud2 {a} libio-stringy-perl {a} libjs-jquery {a} libjs-sphinxdoc {a} 
  libjs-underscore {a} liblockdev1 {a} libmail-sendmail-perl {a} 
  libparse-debcontrol-perl {a} libpcre3-dev {a} libpcrecpp0 {a} 
  libpoppler-qt5-1 {a} libqdjango-db0 {a} libqgsttools-p1 {a} 
  libqt5clucene5 {a} libqt5contacts5 {a} libqt5declarative5 {a} 
  libqt5designer5 {a} libqt5designercomponents5 {a} libqt5feedback5 {a} 
  libqt5help5 {a} libqt5location5-plugins {a} libqt5multimedia5 {a} 
  libqt5multimedia5-plugins libqt5multimediaquick-p5 {a} 
  libqt5multimediawidgets5 {a} libqt5organizer5 {a} 
  libqt5qml-graphicaleffects {a} libqt5script5 libqt5scripttools5 {a} 
  libqt5svg5 {a} libqt5svg5-dev libqt5systeminfo5 {a} libqt5v8-5-dev 
  libqt5versit5 {a} libqt5versitorganizer5 {a} libqt5webkit5-dev 
  libqt5webkit5-qmlwebkitplugin {a} libqt5xmlpatterns5 {a} 
  libqt5xmlpatterns5-dev libstdc ++-4.8-dev {a} libsys-hostname-long-perl {a} 
  libthumbnailer0 {a} libu1db-qt5-3 {a} libunity-action-qt1 {a} 
  libupstart-app-launch1 {a} libusermetricsinput1 {a} libxml2-dev {a} 
  libxslt1-dev {a} po-debconf {a} python3-apparmor-click {a} python3-click {a} 
  python3-magic {a} qmlscene qt3d5-dev qtbase5-doc {a} qtcreator {a} 
  qtcreator-doc {a} qtcreator-plugin-ubuntu {a} 
  qtcreator-plugin-ubuntu-common {a} qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin {a} qtdeclarative5-dev-tools 
  qtdeclarative5-doc-html {a} qtdeclarative5-folderlistmodel-plugin 
  qtdeclarative5-friends0.2 qtdeclarative5-localstorage-plugin 
  qtdeclarative5-particles-plugin qtdeclarative5-poppler1.0 
  qtdeclarative5-qtaudioengine-plugin qtdeclarative5-qtfeedback-plugin {a} 
  qtdeclarative5-qtlocation-plugin qtdeclarative5-qtmultimedia-plugin {a} 
  qtdeclarative5-qtorganizer-plugin qtdeclarative5-qtquick2-plugin {a} 
  qtdeclarative5-qtsensors-plugin qtdeclarative5-u1db1.0 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin {a} 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin-assets {a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-plugin {a} qtdeclarative5-xmllistmodel-plugin 
  qtgraphicaleffects5-doc {a} qtlocation5-dev {a} qtmultimedia5-dev 
  qtmultimedia5-doc {a} qtmultimedia5-doc-html {a} qtscript5-dev 
  qtscript5-doc {a} qtscript5-doc-html {a} qtsensors5-dev {a} qtsvg5-doc {a} 
  qtsvg5-doc-html {a} qttools5-dev qttools5-dev-tools qttools5-doc {a} 
  qtwebkit5-doc-html {a} schroot {a} schroot-common {a} sqlite3 {a} 
  ubuntu-html5-容器ubuntu-html5-sdk {ab} ubuntu-html5-theme {a} 
  ubuntu-html5-theme-examples ubuntu-sdk ubuntu-sdk-libs 
  ubuntu-sdk-libs-dev {a} ubuntu-ui-toolkit-doc {a} 
  ubuntu-ui-toolkit-examples {a} ubuntu-ui-toolkit-theme {a} 
  unity-action-doc {a} upstart-app-launch {a} upstart-app-launch-tools {a} 
  usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
以下软件包将被升级:
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
升级了15个软件包,新安装了151个,删除了0个,未升级293个。
需要获取108 MB / 126 MB的存档。解压缩后将使用273 MB。
以下软件包具有未满足的依赖性:
 ubuntu-html5-sdk:取决于:qtdeclarative5-ubuntu-webapps-api,它是一个虚拟软件包。
                    取决于:ubuntu-html5-ui-toolkit,但是不会被安装。
以下操作将解决这些依赖性:

     保持以下软件包为当前版本:              
1)qtcreator-plugin-ubuntu [未安装]                          
2)ubuntu-html5-sdk [未安装]                                 
3)ubuntu-sdk [未安装]                                       

     保留以下依赖项未解决:                       
4)libhud-client2推荐hud(= 13.10.1 + 13.10.20131014-0ubuntu1)
5)qtcreator-plugin-ubuntu-common推荐qtcreator-plugin-ubuntu


接受这个解决方案吗?[Y / n / q /?] y
将安装以下新软件包:
  apparmor-easyprof {a} apparmor-easyprof-ubuntu {a}必不可少的{a} 
  click {a} click-apparmor {a} cordova-ubuntu-2.8 debhelper {a} dh-apparmor {a} 
  dh-make {a} dpkg-dev {a} g ++ {a} g ++-4.8 {a} geoclue-gypsy {a} 
  libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-perl {a} libdee-qt5-3 {a} libglib2.0-dev {a} 
  libgstreamer-plugins-base1.0-dev {a} libgstreamer1.0-dev {a} libgypsy0 {a} 
  libhud2 {a} libjs-jquery {a} libmail-sendmail-perl {a} libpcre3-dev {a} 
  libpcrecpp0 {a} libpoppler-qt5-1 {a} libqdjango-db0 {a} libqgsttools-p1 {a} 
  libqt5clucene5 {a} libqt5contacts5 {a} libqt5designer5 {a} 
  libqt5designercomponents5 {a} libqt5feedback5 {a} libqt5help5 {a} 
  libqt5location5-plugins {a} libqt5multimedia5 {a} libqt5multimedia5-plugins 
  libqt5multimediaquick-p5 {a} libqt5multimediawidgets5 {a} 
  libqt5organizer5 {a} libqt5qml-graphicaleffects {a} libqt5script5 
  libqt5scripttools5 {a} libqt5svg5 {a} libqt5svg5-dev libqt5systeminfo5 {a} 
  libqt5v8-5-dev libqt5versit5 {a} libqt5versitorganizer5 {a} 
  libqt5webkit5-dev libqt5webkit5-qmlwebkitplugin {a} libqt5xmlpatterns5 {a} 
  libqt5xmlpatterns5-dev libstdc ++-4.8-dev {a} libsys-hostname-long-perl {a} 
  libthumbnailer0 {a} libu1db-qt5-3 {a} libunity-action-qt1 {a} 
  libupstart-app-launch1 {a} libusermetricsinput1 {a} libxml2-dev {a} 
  libxslt1-dev {a} po-debconf {a} python3-apparmor-click {a} python3-click {a} 
  qmlscene qt3d5-dev qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin {a} qtdeclarative5-dev-tools 
  qtdeclarative5-folderlistmodel-plugin qtdeclarative5-friends0.2 
  qtdeclarative5-localstorage-plugin qtdeclarative5-particles-plugin 
  qtdeclarative5-poppler1.0 qtdeclarative5-qtaudioengine-plugin 
  qtdeclarative5-qtfeedback-plugin {a} qtdeclarative5-qtlocation-plugin 
  qtdeclarative5-qtmultimedia-plugin {a} qtdeclarative5-qtorganizer-plugin 
  qtdeclarative5-qtquick2-plugin {a} qtdeclarative5-qtsensors-plugin 
  qtdeclarative5-u1db1.0 qtdeclarative5-ubuntu-ui-extras-browser-plugin {a} 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin-assets {a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-plugin {a} qtdeclarative5-xmllistmodel-plugin 
  qtlocation5-dev {a} qtmultimedia5-dev qtscript5-dev qtsensors5-dev {a} 
  qttools5-dev qttools5-dev-tools sqlite3 {a} ubuntu-html5-container 
  ubuntu-html5-theme {a} ubuntu-html5-theme-examples ubuntu-sdk-libs 
  ubuntu-ui-toolkit-theme {a} upstart-app-launch {a} 
  upstart-app-launch-tools {a} usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
以下软件包将被升级:
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
已升级15个软件包,新安装了108个软件包,删除了0个软件包,未升级293个软件包。
需要获取27.1 MB / 45.8 MB的档案。解压缩后将使用104 MB。
你想继续吗?[是/否/?]

您的示例仅具有停止安装的能力。它实际上并没有安装任何东西。
kiri

2
@AvinashRaj,..,但是在安装之前是否aptitude应该解决依赖项问题?
2014年

是的,在大多数情况下,它可以解决依赖关系。
Avinash Raj 2014年

2
我的意思是,如果系统的软件包已损坏,则在修复aptitude该问题之前将不允许新的安装..因此,如何在不首先解决问题的情况下进行安装!
2014年

在这种情况下,我们首先必须解决损坏的软件包,否则您将无法安装aptitude。如果没有由于损坏的软件包引起的错误,则可以安装aptitude。
Avinash Raj 2014年

11

我的回答与上面的rick类似。

使用apt-get cleanapt-get autocleanapt-get autoremoveapt-get upgradeapt-get updateapt-get -u dist-upgrade,等一切对我来说没有工作。

我终于解决了这个问题,方法是通过进入依赖树apt-get install,下面有一个例子说明。就我而言,我想安装libmagickwand-dev

apt-get install libmagickwand-dev

我收到此错误:

The following packages have unmet dependencies:
 libmagickwand-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libmagickcore-dev (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed

所以,我跑apt-get install了一个失败的依赖项:

apt-get install libmagickcore-dev

The following packages have unmet dependencies:
 libmagickcore-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libgraphviz-dev but it is not going to be installed

我走到树下:

apt-get install libgraphviz-dev

另一个错误:

The following packages have unmet dependencies:
 libgraphviz-dev : Depends: libgvc5 (= 2.26.3-10ubuntu1) but it is not going to be installed

再深入一棵树:

apt-get install libgvc5

出于一些奇怪的原因,这成功了,并且我能够通过以下方式安装想要的原始软件包 apt-get install libmagickwand-dev

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libpathplan4
Suggested packages:
  libgd-tools
The following NEW packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libgvc5 libpathplan4
0 upgraded, 5 newly installed, 0 to remove and 2 not upgraded.
Need to get 808 kB of archives.
After this operation, 2,320 kB of additional disk space will be used.
Do you want to continue [Y/n]?

8

极好的答案!但是今天,我的情况似乎与您的情况不同。这是我的建议。

问题:

我在ubuntu 10.10中无法安装apache2。

rick@wen-VirtualBox:~$ sudo apt-get install apache2

Reading package lists... Done

Building dependency tree      

Reading state information... Done

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

The following information may help to resolve the situation:

The following packages have unmet dependencies:

 apache2 : Depends: apache2-mpm-worker (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-prefork (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-event (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-itk (= 2.2.16-1ubuntu3) but it is not going to be installed

           Depends: apache2.2-common (= 2.2.16-1ubuntu3) but it is not going to be installed

E: Broken packages

解:

我的方法是将依赖的软件包添加到安装列表中。

如果'sudo apt-get install apache2'失败,请尝试' sudo apt-get install apache2 apache2.2-common '。

看到?apache2.2-common来自上一步的错误日志。

最后,我发现有一个像这样的依赖链:

 apache2.2-common <-- apache2.2-bin <-- libaprutil1-ldap <-- libaprutil1

对于前三个软件包,apt-get日志告诉我“将不会安装”,

但对于最后一个软件包,它显示“ libaprutil1-ldap:取决于:libaprutil1(= 1.3.9 + dfsg-3build1)但要安装1.3.9 + dfsg-3ubuntu0.10.10.1”

我的库中存在另一个版本,因此:

sudo apt-get remove libaprutil1

sudo apt-get install apache2

现在好啦。


这个答案,另一个上面的组合的阅读这里给出的依赖问题是什么更好的理解。当此处的其他答案提供“高度通用”的解决方案时,这将提供理解。
VenkiPhy6 2014年

7

什么是未满足的依赖关系错误

在Ubuntu上,软件包是构建,部署和安装软件的主要方法。很简单,软件包是从头开始下载,构建和安装软件的替代方法。与标准的“从源构建”模型相比,它们在软件之间的安装,删除,监视和处理交互方面提供了许多优势。Ubuntu使用集中式打包系统,即每个包都依赖于其他一些包。当我们安装一个包时,将安装它的依赖项,当该包的依赖项不可用于安装时,发生未满足的依赖项错误

可能的原因

1.Computer is not connected to the Internet
2.The repository containing the depandancy package is not enabled
3.Package catalog is not updated
4.The version of the depandancy in the current repository is old
5.Software index is broken
6.The depandancy is not available for ubuntu

让我们尝试解决它

  1. 连接到互联网:D
  2. 确保所有默认存储库均已启用

    ->您可以轻松地将它们添加到Software Center->编辑->软件源->其他源->添加”

    ->启动Software Center

    ->。在面板中Edit,选择Software Sources

    编辑软件源

    ->确保已检查所有存储库 在此处输入图片说明

  3. 更新软件目录

    单击右上角的图标,然后在菜单中选择“更新可用的条目”
    在此处输入图片说明

然后按检查按钮 在此处输入图片说明

4.type ctrl+ alt+ t打开终端和类型 sudo apt-get install -f

5.Purge最近添加PPA PPA使用吹扫 PPA-吹扫 安装ppa-purge

该程序从您的软件源禁用PPA,并将系统恢复为官方的Ubuntu软件包。从PPA测试新版本后,可以使用它使系统恢复正常。

句法

sudo ppa-purge ppa:<repository-name>/<subdirectory>

sudo ppa-purge ppa:ubuntu-mozilla-daily/ppa
  1. 打开软件中心,然后尝试安装任何软件,如果出现以下对话框,请按修复按钮,然后等待

在此处输入图片说明

其他 类型ctrl+ alt+ t打开终端,然后键入sudo apt-get install -f并按照屏幕上的说明进行操作

如果仍然发生错误,请随时askbuntu询问


@jrg我的答案中已经有这个答案...每个答案都需要具有相同的内容吗?
阿舒

2
@Ashu我正在尝试帮助人们做出规范的答案-我必须告诉所有人,因为有500名代表悬赏,而我不想在帮助某些人提供答案但不理others其他人的过程中发挥最爱。:s
jrg

5

...不要忘了`build-dep`

除了上面的回答之外,我不得不承认,我很惊讶没有人提到这种方法,这是我在遇到易失性冲突或未解决的程序包(甚至是程序包)时一直被用作“银弹”的方法。如果系统很顽固....哈!)

编辑:sudo dpkg -r [package]鼓励使用,因为它具有强大的删除功能。由于apt-get与一起使用dpkg,这意味着apt-get将服从dpkg功能。

  sudo dpkg -r [package]
  sudo apt-get build-dep [package]  
  ## pre-install all deps for the package

您调用apt-get清除要尝试在系统中安装的失败软件包,然后调用build-dep命令,该apt-get将获取并安装分别属于此软件包的依赖项,以便它们可以满足打包之前。最后,调用apt-get install:

sudo apt-get install [package]

....'啊!让我们扭动手臂,直到您大喊“叔叔!”

在我长期使用Linux的过程中,这种情况很少发生,但是我发现自己很少使用这种方法并且成功了。这是我一个月前在打包程序方面最近奋斗的一个例子mysql-client/mysql-server。在尝试用mysql-server重置我的root密码失败了十多次之后(即使通过--skip-grant-tables techqiue也失败了),我终于成功地“扭转了Linux的手臂,直到大吼大叫”叔叔!””:

sudo dpkg -r mysql-server mysql-client
sudo apt-get autoclean  
## this dumps any copy of existing package to prevent apt-get from "re-using" it.
sudo apt-get build-dep mysql-client   
 ## one package at a time, starting with client first
sudo apt-get install mysql-client
sudo apt-get build-dep mysql-server
sudo apt-get install mysql-server

apt-get autoclean 是解决方案的关键


3

在64位Multiarch Ubuntu系统中安装i386软件包的过程中

如果您尝试安装依赖于许多i386软件包的软件包,则如果您无法通过运行sudo dpkg --add-architecure i386命令添加i386体系结构,也会导致上述依赖性错误。

例:

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 skype : Depends: skype-bin but it is not installable
E: Unable to correct problems, you have held broken packages.
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo dpkg --add-architecture i386
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype-bin:i386 sni-qt:i386 zlib1g:i386
Suggested packages:
  nas:i386 glibc-doc:i386 locales:i386 rng-tools:i386 libglide3:i386
  gnutls-bin:i386 krb5-doc:i386 krb5-user:i386 libvisual-0.4-plugins:i386
  gstreamer-codec-install:i386 gnome-codec-install:i386
  gstreamer1.0-tools:i386 gstreamer1.0-plugins-base:i386 jackd2:i386
  pulseaudio:i386 libqt4-declarative-folderlistmodel:i386
  libqt4-declarative-gestures:i386 libqt4-declarative-particles:i386
  libqt4-declarative-shaders:i386 qt4-qmlviewer:i386 libqt4-dev:i386
  libicu48:i386 libthai0:i386 qt4-qtconfig:i386
Recommended packages:
  xml-core:i386
The following NEW packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype skype-bin:i386 sni-qt:i386 zlib1g:i386
0 upgraded, 115 newly installed, 0 to remove and 7 not upgraded.
Need to get 63.7 MB of archives.
After this operation, 225 MB of additional disk space will be used.
Do you want to continue? [Y/n] 

我同意这可能是可能的原因之一。当我尝试vlc在安装Skype之后安装其他软件包(例如)时,得到了unmet依赖性。通过:amd64在导致错误的程序包名称的末尾添加,我得到了类似的结果。您是如何康复的?什么是最好的解决方案?
souravc

不知道为什么这被否决了。这是我安装32位Wine所需要的。顺便说一句,您在--add-architecture中有一个错字,应该在--add-architecture之后添加提醒以运行apt-get upgrade。
马特·钱伯斯

1

在尝试了该线程(和其他线程)中提到的每种方法之后,我几乎都放弃了。我将Debian Lenny升级为Squeeze,但我终生无法弄清为什么PHP5,Apache,MySQL等不想安装。最后我尝试使用

sudo apt-get purge apache2
sudo apt-get purge php5
sudo apt-get purge mysql-server
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get install apache2 php5 mysql-server

..并且完美无瑕!(当心,它可能会破坏您的配置文件,因此请备份它们!


如果您没有安装上述软件包,则无法解决问题。
Braiam 2013年

1

对我有用的是重新安装依赖项。在这种情况下,已安装的版本比最新版本(突触显示的内容)要新。实际上,这等效于允许突触降级依赖包。

起作用的另一件事是使用“能力”:

root@arau:~# aptitude install libgfortran3
The following NEW packages will be installed:
  libgfortran3{b} 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 250 kB of archives. After unpacking 1 230 kB will be used.
The following packages have unmet dependencies:
 libgfortran3 : Depends: gcc-4.8-base (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is installed.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libgfortran3 [Not Installed]                       



Accept this solution? [Y/n/q/?] n
Internal error: found 2 (choice -> promotion) mappings for a single choice.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

      Downgrade the following packages:                                        
1)      cpp-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
2)      gcc-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
3)      gcc-4.8-base [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
4)      libasan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
5)      libatomic1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
6)      libgcc-4.8-dev [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]
7)      libgomp1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
8)      libitm1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
9)      libquadmath0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
10)     libstdc++6 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
11)     libtsan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      

Accept this solution? [Y/n/q/?] y

这并不是什么新鲜事,基本上与您可以从此处获得最高评价的答案中撤出的内容相同,也可以跟着它...
JoKeR 2015年

1
是的,但是有无数种解决方案,我只是简单地提到对我有用的解决方案。
鲍勃·约普拉特

0

如果出现这样的错误:
在此处输入图片说明

这是在告诉您软件包已安装,但尚未安装需要工作的所有其他软件包。您应该可以通过运行以下命令解决此问题:

sudo apt-get -f install

(此命令应自动安装未满足的依赖项。)

或类似的东西(带有相关的软件包)

sudo apt-get install click curl dpkg-dev python-lzma python-requests imagemagick ubuntu-dev-tools

但是,如果最终出现这种错误: 无法安装程序包/程序包不可用/没有安装候选程序等

然后,您可以搜索此处此处安装它们的方法。
与上面的例子中,你应该能够找到像网页这样,然后用一个PPA,或安装在32位一个.deb,或者64位一个.deb

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.