118

I'm trying to install MySQL Workbench on my Ubuntu box (11.04). The website has a Ubuntu .deb available for download (for 10.10 and 10.04 so I chose 10.10).

However,

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

yields:

(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

My question is, is there a way to tell dpkg to automatically fetch missing dependencies, or do I need to manually apt-get install missing packages like libctemplate0 and libpython2.6?

(Or alternatively, is there some other way to get MySQL Workbench easily up & running?)

Braiam
  • 67,791
  • 32
  • 179
  • 269
Jonik
  • 7,178
  • 2
    @Braiam: how can this question be a duplicate of a question posted three months later? – enzotib Jan 15 '15 at 07:52
  • 2
    This question has better answers and is far more popular of the two, so indeed the other one should be marked as duplicate of this. – Jonik Jan 15 '15 at 12:27
  • @Jonik Right now this question has 221,988 views and the question it's closed as a duplicate of has 241,929 views, so if this was once the more popular of the two, it isn't anymore. As for the quality of the answers, would it be sufficient for the answers here simply to be merged into the other question? Moderators can do that (if we ask them and they agree). The answers would appear on the other question (along with its answers) rather than this one. This question would still exist and still link to the other question and continue helping people find the answers. What do you think of this? – Eliah Kagan Aug 19 '17 at 23:44
  • Oh, it's my question from 6 years ago. :) Honestly, I don't think it matters much. I'd just leave it as it is. Merging muddies the waters, as some of the answers inevitably become offtopic. If you must do something, then go ahead and do what seems wise. – Jonik Aug 21 '17 at 13:26

7 Answers7

134

You can install a package and get dependencies from repositories with

sudo gdebi package.deb

If you already installed the package with missed dependencies, you can dowload and install dependencies automatically with

sudo apt-get -f install

Also available is a graphical version gdebi-gtk, linked to .deb nautilus right click action "Open With GDebi Package Installer".

enzotib
  • 93,831
36

From the 1.1 branch onwards, apt-get supports installing local packages along with dependencies in the way of:

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

Note the ./ in front of package file name, which is mandatory otherwise the name will be used as package name, not a file name.

Braiam
  • 67,791
  • 32
  • 179
  • 269
30

dpkg itself is not capable of managing repositories. A higher-level tool like apt-get is required to fetch anything from repositories. dkpg is only the core tool that installs/removes/configures packages, taking care of dependencies and other factors. apt-get and aptitude are tools that manage repositories, download data from them, and use dkpg to install/remove packages from them. This means that apt-get and aptitude can resolve dependencies and get required packages from repository, but dpkg cannot, because it knows nothing about repositories.

ardila
  • 107
17

You can use apt-get -f install to install all the packages dpkg -i complains about (but looking at your question you probably knew that ;) ).

gdebi might be a better alternative.

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. 

On a 3rd note... gdebi was replaced by the Ubuntu Software Center. If you install the .deb from within GDM (nautilus) USC will take over and try to install the deb. And that includes the dependencies. That is if you are not bound to command line ;)

Braiam
  • 67,791
  • 32
  • 179
  • 269
Rinzwind
  • 299,756
  • 1
    Never thought of apt-get -f install, thanks! Looking for command solutions, quite aware of both gdebi and USC. – Oxwivi Nov 16 '11 at 09:56
  • Oh wait, gdebi is command line tool. I'm sorry to ask this, but can you remove your answer? It seems this question was a duplicate, and I delete any duplicate question of mine. :) Comment on the question if you do. – Oxwivi Nov 16 '11 at 09:59
6

That particular library(libctemplate0) I downloaded it from

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

The direct link http://ubuntu.wikimedia.org/ubuntu//pool/universe/c/ctemplate/libctemplate0_0.96-0ubuntu1_amd64.deb

The mySQL-workbench installation went smoothly after that.

mv288
  • 161
6

Right click on the package file and select "open with Ubuntu software center", It will install everything for you.

Eliah Kagan
  • 117,780
user118263
  • 61
  • 1
  • 1
3

AFAIK, dpkg provides no mechanism for dependency resolving. It checks/warns for dependencies, but does not do any further action. You'll have to solve the problems on your own.

As the Debian wiki states 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.

So I think that you'll have to use apt-get or aptitude in order to install the package you're interested in, as well as any dependencies involved.

Since this package is not in the 11.04 repositories, just run:

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

and you should be ok.

muru
  • 197,895
  • 55
  • 485
  • 740
Pavlos G.
  • 8,844
  • 1
    Running 11.04 also, but I get "has no installation candidate" for most of the packages in your first apt-get. Am I missing something? – John C May 21 '12 at 18:21