Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

After upgrading from 10.04 to 12.04 I am trying to install different packages. For instance ia32-libs and skype (4.0).

When trying to install these, I am getting the 'Unable to correct problems, you have held broken packages' error message.

Output of commands:

sudo apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

After running this:

sudo dpkg --configure -a
foo@foo:~$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
share|improve this question
2  
It may help if you showed us the command you are actually trying (such as sudo apt-get install ia32-libs) and the output from that command. Also, does sudo apt-get dist-upgrade show any available updates? –  neon_overload Nov 29 '12 at 1:59
2  
I don't know what's wrong with your question, I don't see any actual error, nor the one you describe in your title. –  Braiam Sep 10 at 14:20
    
possible duplicate of How do I resolve unmet dependencies? –  Eliah Kagan Sep 14 at 15:45

4 Answers 4

Had the same problem, I ran that package check command from the other answer (dpkg --get-selections | grep hold) and saw

tomcat7                                         deinstall
tomcat7-common                                  install

so I used "apt-get remove tomcat7-common"

Then I could install Tomcat 6 (I was removing Tomcat 7 and installing Tomcat 6 as you do).

share|improve this answer
    
The "on hold" packages has nothing to do with the message, just that the conflict was avoided by holding them down (not installing, upgrading, downgrading, or removing) –  Braiam Aug 23 at 2:51

I ran into a similar scenario regarding missing dependencies. In my case I was trying to install curl on ubuntu saucy salamander 13.10...

The error stated that the dependency required an earlier version of the curl3 library.

I was able to degrade to the earlier version by trying to install curl using aptitude.

When it noted the missing dependency, and the reason (required an earlier version of the library file), it gave me several options in how to respond... y//n/q

Y would have aborted the install, N would look for another option, and Q would simply quit and do nothing more, leaving a broken package.

I selected N, and it gave me the option to downgrade the library file to an earlier version. So that's what I did, and curl finished installing with no more errors.

  • I may look into upgrading the library file again after the install, but hey, so far so good.
share|improve this answer

That particular error message may indicate that you have held packages, but it may also indicate a different problem.

You can get a list of actual held packages with:

dpkg --get-selections | grep hold

If there are none, or none look related, then it's probably something else. Check carefully the output of the command you were trying when you got the error message, as there may be other clues in the full output from that command, aside from the error message.

Another method of troubleshooting may be to use aptitude rather than apt-get to try to install your package:

sudo aptitude install <packagename>

Aptitude will give up less easily, and will attempt to find solutions which may involve modifying other packages. It may give you more explanation of the problem and options for fixing it.

share|improve this answer
2  
Any idea how to unhold a package? :-) –  Eugene van der Merwe Apr 17 '13 at 14:24
1  
That is a separate question. –  neon_overload Apr 20 '13 at 13:58
12  
Aptitude was more helpful to me than apt-get, thanks for the hint. –  szx Oct 27 '13 at 15:20
2  
One thing to note is that aptitude may make it easier to do more damage to your system. For example, if apt-get fails to install something because of conflicting dependencies it will give up. However, aptitude might offer to go ahead, but uninstall a whole bunch of other packages in order to satisfy those conflicts - or even downgrade packages. You simply have to be aware of what it's suggesting and proceed only if it is a good idea. –  neon_overload Mar 12 at 3:23
1  
The "on hold" packages has nothing to do with the message, just that the conflict was avoided by holding them down (not installing, upgrading, downgrading, or removing). –  Braiam Aug 23 at 2:50

That happened to me too. All I did was sudo apt-get update and that fixed my issue. Good luck.

share|improve this answer

protected by Braiam Aug 23 at 3:05

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.