修复“以下软件包具有未满足的依赖关系”的分步过程是什么?

修复“以下软件包具有未满足的依赖关系”的分步过程是什么?

我尝试了所有方法,但毫无进展。有聪明人能帮忙吗?

当然sudo apt-get -f install不起作用,同样的错误。

$ sudo apt-get install arping
[sudo] password for dloo:
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 arping : Depends: libnet1 (>= 1.1.2.1) but it is not going to be installed
          Depends: libpcap0.8 (>= 0.9.8) but it is not going to be installed
 libc-dev-bin : Depends: libc6 (< 2.16) but 2.17-0ubuntu4 is to be installed
 libc6-dev : Depends: libc6 (= 2.15-0ubuntu10.5) but 2.17-0ubuntu4 is to be installed
 libnih1 : PreDepends: libc6 (< 2.16) but 2.17-0ubuntu4 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

$ uname -a
Linux li366-234 2.6.39.1-x86_64-linode19 #1 SMP Tue Jun 21 10:04:20 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/issue
Ubuntu 11.04 \n \l

答案1

我不知道你是否还需要就此寻求帮助,但以下是针对这种情况可以采取的措施的总结(来自Appuals (appuals.com)):

方法 1:使用-f参数(我知道您已经这样做了,但我将所有内容都收集在这里)

sudo apt-get install -f
sudo dpkg --configure -a
sudo apt-get install -f 

方法 2:使用 Aptitude

sudo aptitude install PACKAGENAME

在哪里PACKAGENAME是您要安装的软件包,然后按Enter执行它。这将尝试通过 aptitude 而不是 apt-get 安装软件包,这应该可以解决未满足的依赖关系问题。

方法 3:确保已启用受限和宇宙存储库,并尝试更好的服务器

software-properties-gtk
  • 在 Ubuntu 软件选项卡中,确保所有存储库(主存储库、宇宙存储库、受限存储库、多元存储库)都已启用。
  • 单击显示“从中下载”的服务器列表,然后选择
  • 点击“选择最佳服务器”。
  • 同时按下AltCtrlT打开终端,然后输入

    sudo apt-get update
    

    然后按一旦运行完成,尝试再次安装该软件。

方法 4:清理包数据库

sudo apt-get clean
sudo apt-get autoclean

方法 5:消除所有被保留的包裹

sudo apt-get -u dist-upgrade

然后(如果 pb 的话):

sudo apt-get -o Debug::pkgProblemResolver=yes dist-upgrade

看看它是否能解决问题。如果它在X not upgraded最后退出,那么X是保留的包的数量,您将需要逐个删除它们。

要删除保留的包裹,

sudo apt-get remove --dry-run PACKAGENAME

PACKAGENAME是您要删除的软件包)。该--dry-run参数可确保您了解接下来发生的一切。删除所有软件包后,尝试安装最初导致问题的软件包,然后查看会发生什么。

方法 6:清除/删除/禁用 PPA

个人软件包存档是托管在 Launchpad 上的存储库,用于升级或安装 Ubuntu 官方存储库中通常不可用的软件包。它们通常是未满足依赖项的原因,尤其是当它们用于升级 Ubuntu 存储库中的现有软件包时。您可以禁用、删除或清除它们。

然后,如果它们仍然显示一些依赖问题,让我们清除它们:

apt purge packageXX packageYY packageZZ

等等,直到一切都干净为止

有些人还说要编辑/var/lib/dpkg/status和删除尚未完成安装的块,但我怀疑这是否真的能解决问题,它只是将其隐藏在地毯下。

答案2

  1. 您尝试过以下操作吗?

    apt-get check
    
  2. 首先尝试:

    sudo dpkg --configure -a
    

其次是:

sudo apt-get -f install

答案3

根据 Ubuntu wiki 上的信息(https://wiki.ubuntu.com/Releases), Ubuntu 11.04 (Natty Narwhal) 于 2012 年 10 月 28 日达到使用寿命终止日期。您的特定错误意味着可用的 arping 版本依赖于更新版本的库,而这些库可能在 Natty Narwhal 中不可用,或者 Natty Narwhal 可能只是拒绝构建这些库,因为它们会导致与您不受支持的其余平台不兼容。

您的两个选择是查看您是否可以找到 arping 所需库的源(记住要满足 arping 的版本要求),并查看您是否可以成功手动构建它们(例如整个 ./configure && make && sudo make install 例程)。但我不能保证这会起作用,而且您的操作系统再次不受支持。或者,备份所有所需数据,下载 Ubuntu 17.10.1 的副本(如果您更喜欢坚持使用 LTS,则下载 16.04.3),制作可启动 USB 并安装更新的、当前支持的 Ubuntu 版本。

答案4

如果您读懂了错误,解决方案就很简单。

假设您要安装的软件包是套餐A

尝试安装套餐A将会得到如下结果:

packageA: Depends: packageX (>= a.b) but it is not going to be installed

你需要跑sudo apt-get install packageX

你可能会遇到另一个错误,内容是:

packageX: Depends: packageY (>= a.b) but it is not going to be installed

运行sudo apt-get install packageY即可安装。

继续这样做(在我看来大多数包都有 3-4 个节点深的树),直到安装了系列中的最后一个依赖项。

之后,你的第一个安装命令套餐A将成功运行。

相关内容