从.deb安装软件时如何自动获取缺少的依赖项?

我正在尝试在我的Ubuntu盒子(11.04)上安装MySQL Workbench 。 该网站有一个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右键单击操作“Open with GDebi Package Installer”。

dpkg本身无法管理存储库 。 需要更高级别的工具,如apt-get ,才能从存储库中获取任何内容。 dkpg只是安装/删除/配置包的核心工具 ,负责依赖性和其他因素。 apt-getaptitude是管理存储库,从中下载数据以及使用 dkpg从中安装/删除软件包的工具。 这意味着apt-getaptitude可以解析依赖关系并从存储库获取所需的包,但是dpkg不能,因为它对存储库一无所知

从1.1分支开始, apt-get支持以下列方式安装本地软件包以及依赖项:

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

您可以使用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 。 这包括依赖项。 那就是如果你不受命令行的束缚;)

那个特定的库( 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所述:

dpkg会检查依赖项,并拒绝安装不符合依赖项的软件包, 但它无法帮助您查找和安装这些依赖项。 你需要一个更高级别的工具(例如dselect或apt-get)

所以我认为你必须使用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 

你应该没问题。