当前位置: 首页>>技术教程>>正文


如何从.deb安装软件时自动获取缺失的依赖关系?

, , ,

问题描述

我试图在我的Ubuntu盒子上安装MySQL Workbench(11.04)。该网站有一个Ubuntu .deb可供下载(对于10.10和10.04,所以我选择了10.10)。

然而,

sudo dpkg -i mysql-workbench-gpl-5.2.34-1ubu1010-amd64.deb

收益率:

(Reading database ... 194069 files and directories currently installed.)
Preparing to replace mysql-workbench-gpl 5.2.34-1ubu1010 (using mysql-workbench-gpl-5.2.34-1ubu1010-amd64.deb) ...
Unpacking replacement mysql-workbench-gpl ...
dpkg: dependency problems prevent configuration of mysql-workbench-gpl:
 mysql-workbench-gpl depends on libctemplate0; however:
  Package libctemplate0 is not installed.
 mysql-workbench-gpl depends on libpython2.6 (>= 2.6); however:
  Package libpython2.6 is not installed.
 mysql-workbench-gpl depends on libzip1 (>= 0.8); however:
  Package libzip1 is not installed.
 mysql-workbench-gpl depends on python-paramiko; however:
  Package python-paramiko is not installed.
 mysql-workbench-gpl depends on python-pysqlite2; however:
  Package python-pysqlite2 is not installed.
dpkg: error processing mysql-workbench-gpl (--install):
 dependency problems - leaving unconfigured
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Processing triggers for desktop-file-utils ...
Processing triggers for python-gmenu ...
Rebuilding /usr/share/applications/desktop.en_US.utf8.cache...
Processing triggers for python-support ...
Errors were encountered while processing:
 mysql-workbench-gpl

我的问题是,有没有办法告诉dpkg自动获取缺失的依赖项,还是我需要手动apt-get install丢失的包,如libctemplate0和libpython2.6?

(或者,还有其他方法可以让MySQL Workbench轻松升级并运行?)

最佳解决方案

你可以安装一个软件包,并从存储库中获得依赖关系

sudo gdebi package.deb

如果您已经安装了错过依赖关系的软件包,可以自动下载并安装依赖关系

sudo apt-get -f install

还有一个图形版本gdebi-gtk,链接到.deb nautilus 右键单击动作“使用GDebi包安装程序打开”。

次佳解决方案

dpkg本身无法管理存储库。像apt-get这样的higher-level工具需要从存储库中获取任何东西。 dkpg只是安装/删除/配置软件包的核心工具,需要考虑依赖性和其他因素。 apt-getaptitude是管理存储库,从中下载数据并使用dkpg从其安装/删除软件包的工具。这意味着apt-getaptitude可以解决依赖关系并从存储库获取必需的包,但是dpkg不能,因为它对存储库一无所知。

第三种解决方案

您可以使用apt-get -f install安装dpkg -i抱怨的所有软件包(但是查看您可能知道的问题;))。

gdebi可能是更好的选择。

Description: Simple tool to install deb files
gdebi lets you install local deb packages resolving and installing its 
dependencies. apt does the same, but only for remote (http, ftp) located 
packages. 

在第三个音符… gdebi被Ubuntu软件中心取代。如果您从GDM(nautilus)安装.deb,USC将接管并尝试安装deb。这包括依赖关系。那就是如果你没有绑定命令行;)

第四种方案

从1.1分支开始,apt-get支持通过以下方式安装本地程序包和依赖项:

sudo apt-get install ./your-package.deb

第五种方案

该特定的库(libctemplate0)我从它下载

http://packages.ubuntu.com/lucid/amd64/libctemplate0/download

直接链接http://ubuntu.wikimedia.org/ubuntu//pool/universe/c/ctemplate/libctemplate0_0.96-0ubuntu1_amd64.deb

之后,mySQL-workbench安装顺利进行。

第六种方案

右键单击包文件并选择“使用Ubuntu软件中心打开”,它会为您安装所有内容。

第七种方案

AFAIK,dpkg不提供依赖关系解析的机制。它检查/警告依赖关系,但不做任何进一步的操作。你必须自己解决问题。

正如Debian wiki的状态here

dpkg checks dependencies and will refuse to install a package whose dependencies aren’t met, but it won’t help you find and install those dependencies. You need a higher-level tool (eg dselect or apt-get) for that.

所以我认为您必须使用apt-getaptitude才能安装您感兴趣的软件包以及所涉及的任何依赖项。

由于这个软件包不在11.04版本库中,只需运行:

sudo apt-get install libctemplate0 libzip1 libpython2.6 python-pysqlite2 python-paramiko
sudo dpkg -i mysql-workbench-gpl-5.2.34-1ubu1010-amd64.deb

你应该没问题。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/596.html,未经允许,请勿转载。