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?
– thomasrutterNov 29 '12 at 1:59

3

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.
– BraiamSep 10 '14 at 14:20

7 Answers
7

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.

Occasionally aptitude will be too eager to remove or downgrade large numbers of packages to satisfy your request, in which case retrying with -f changes its priorities and helps it come up with solutions that involve removing/downgrading fewer packages even if it means not all changes you requested can go ahead:

Aptitude was more helpful to me than apt-get, thanks for the hint.
– szxOct 27 '13 at 15:20

8

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.
– thomasrutterMar 12 '14 at 3:23

4

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).
– BraiamAug 23 '14 at 2:50

These are some fast and easy ways to fix the you have held broken packages error.

Open your sources.list file in /etc/apt/sources.list and check that there aren't any software sources for a different Ubuntu release than the Ubuntu release that you are currently using. If you find any incorrect release lines in sources.list, open the sources.list file with sudoedit /etc/apt/sources.list, comment out the incorrect lines in sources.list by preceding them with a # character, save the sources.list file, and run sudo apt update to update the list of available software packages.

Select the Fix Broken Packages option in Synaptic package manager. Run the following commands to install Synaptic.

sudo apt update
sudo apt upgrade
sudo apt install synaptic

Open Synaptic and in Synaptic select Edit -> Fix Broken Packages and then repeat Edit -> Fix Broken Packages a second time.

Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).