Debian – How to install 32-bit libraries using Debian Testing

32bit-64bitdebian

Question:

What is the way to determine, ahead of time and without doing a full
install of 64-bit Debian Testing NETINST, when Debian Testing has
32-bit libraries available and fully working and installable so that
the following command works without broken package errors?:

apt-get install ia32-libs ia32-libs-gtk

The errors that occur when 32-bit libraries are not available, still
in some broken state, or whatever is broken are detailed below. I
already have concluded that "Just install Stable" is my stop-gap
measure for now, but I would like to know the answer to the above
question so as to avoid a lengthy installation process only to run
into these problems at the very end.

Details:

I downloaded the 64-bit Debian Testing netinst a couple of days
ago. This was "Jessie" built 20131014-06:07 via
http://tinyurl.com/lejpa. This is weekly testing build. Yes, I know I
should expect problems, and I did. I managed to get it completely
installed and was able to invoke into GNOME, but not get past the
32-bit library problem.

The problems starts when I attempt to install the 32-bit libraries via:

apt-get install ia32-libs ia32-libs-gtk

that returns:

root@breath:~# apt-get install ia32-libs ia32-libs-gtk
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ia32-libs : Depends: ia32-libs-i386 but it is not installable
 ia32-libs-gtk : Depends: ia32-libs-i386 but it is not installable
                 Depends: ia32-libs-gtk-i386 but it is not installable
E: Unable to correct problems, you have held broken packages.

I then found an old (2012 is old to me) answer at
ia32-libs : Depends: ia32-libs-i386 but it is not installable
and even tried what they suggested there which was

dpkg --add-architecture i386
apt-get update

After executing the above, I tried again but got:

root@breath:~# apt-get install ia32-libs ia32-libs-gtk
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ia32-libs : Depends: ia32-libs-i386
 ia32-libs-gtk : Depends: ia32-libs-i386
E: Unable to correct problems, you have held broken packages.
root@breath:~#

And then tried this:

root@breath:~# dpkg --get-selections | grep hold

And that returned nothing. Not only is there broken packages, the
system doesn't even know what packages are broken, so Debian Stable is
my only solution I know of right now.

Hence my question above.

Best Answer

I went back and installed Debian Stable and the command still failed in the same way:

apt-get install ia32-libs ia32-libs-gtk

Those packages no longer install on what is now called Debian Stable. Apparently, Debian has moved to a Multiarch mechanism, causing those packages to no longer be valid. What did work was installing some packages with the ":i386" suffix applied to the end of specific package names. After extensive web searching I finally found http://gromgull.net/blog/2013/02/32bit-firefoxthunderbird-on-debian-amd64/#post-628 which was quite helpful.