尝试安装新软件包时出现“E:未解决的依赖关系。”

尝试安装新软件包时出现“E:未解决的依赖关系。”

我安装了从网站下载的 Lazarus IDE,而不是从 Ubuntu 软件管理器下载的。我无法从 USC 安装它,所以我下载了它。但在我使用

sudo dpkg -i *.deb

(我在下载的文件夹中运行)我无法安装或卸载其他任何东西。例如,当我尝试安装 SciDavis 时,我得到:

misery@VaultDweller:~$ sudo apt-get install scidavis
正在读取软件包列表...已准备就绪
构建依赖关系树    
正在读取有关状态的信息...就绪
建议运行“apt-get -f install”来修复它们:
以下软件包存在依赖性问题:
  lazarus-ide-0.9.30.2:需要:libgdk-pixbuf2.0-0(>= 2.22.0)但无法安装
                        需要:libgtk2.0-0 (>= 2.24.0) ale 2.20.1-0ubuntu2.1 需要安装
  lazarus-ide-gtk2-0.9.30.2:需要:libgdk-pixbuf2.0-0(>= 2.22.0)但无法安装
                             需要:libgtk2.0-0 (>= 2.24.0) ale 2.20.1-0ubuntu2.1 需要安装
  lcl-qt4-0.9.30.2:需要:libqt4pas-dev 但无法安装
  scidavis:需要:libmuparser0但不会安装
            需要:libqt4-qt3support (>= 4:4.5.3) 但不会安装
            需要:libqwt5-qt4 但不会安装
            需要:libqwtplot3d-qt4-0 但不会安装
E:未解决的依赖关系。请尝试不使用软件包的“apt-get -f install”(或提供解决方案)。

Lazarus 运行良好,就像之前安装的其他应用程序一样。如果我使用推荐的

apt-get -f install

它删除了 Lazarus 软件包,导致 Lazarus 不再运行,但是 USC 和 apt-get 可以正常运行。

如何修复?

答案1

这意味着 Lazarus 软件包的依赖项无法在您的 Ubuntu 版本中得到满足。因此 apt-get 决定最好将其删除,而不是让它处于损坏状态。

例如,Lazarus 想要 libgdk-pixbuf-2.0-0,它是不是在您的 Ubuntu (Lucid) 版本中可用。此外,它所需的 libgtk2.0-0 版本(2.24.0 或更高版本)仅从 Ubuntu 11.04 开始可用。

这表明 Lazarus 包是在较新版本的 Ubuntu 中创建的。

现在,你说它可以工作,所以它显然与你安装的库并不完全不兼容。所以这是软件包装的问题,而不是二进制文件本身的问题。如果它与旧版本(例如 libgtk)兼容,那么软件包应该不是需要更新的版本。这必须由 Lazarus 人员修复。

有两种方法可以解决包装问题:

  1. 尝试找到适用于 Ubuntu 10.04 的 Lazarus 软件包版本(可能已过时且缺少您需要的功能)。

  2. 将您的 Ubuntu 升级到较新的版本,Lazarus 很可能能够顺利安装而不会发生冲突。

答案2

您至少需要 Ubuntu 11.04 才能使用这些 Lazarus 软件包。它们不适用于 10.04

相关内容