I've got a 64-bit 12.10 install on my Laptop. When running apt-get update, it downloads package lists for 32-bit packages (as well as source and 64-bit package lists). Why does it look for 32-bit package lists on a 64-bit system? I've included one of the items it tries to find below.
Confusing, isn't it? Let me explain a bit.
I'm from early 2011. What happened?
In 64-bit versions of Ubuntu before 11.10, some set of common 32-bit libraries were packaged in a single
ia32-libspackage represented to APT/Dpkg as being 64-bit and in such a location in the repository. If you happen to need a single library for an application, it would depend on the 150+ MB of 32-bit libraries1. Clearly, this is not a nice design.
The new idea was to introduce so-called "Multiarch" capabilities to APT/Dpkg and the tools around it. This was presented in several blueprints on Launchpad, here is one of them. Oneiric (11.10) became the first release that supported Multiarch.
How does it work?
You can tell Dpkg what architectures your system is capable running. On my 12.04 64-bit installation, this is here:
It opens the whole world of
amd64still being the default:
The above example shows that Multiarch enables package maintainers to simply make their packages depend on
libqt4-core:i386for example, and makes it possible to install any 32-bit library/package (and thus to install any package that depends on any 32-bit library/package), rather than a preselected set.
In case you were used to install the
ia32-libspackage as a convenience package to install a common set of basic 32-bit libraries, you can now use
ia32-libs-multiarch. This is a simple metapackage depending on the same (or at least very similar) set of libraries, but it will be installed with the power of Multiarch.
Further related readings
1 For Lucid (10.04) the
ia32-libspackage install size is 155,812.0 kB.