Typically directions for downloading a i386 version of a library for a x86_64 system link to a specific deb package and tell you to download it with wget. A new release of that package often breaks the link, so I wanted to document how to do this using apt. Unfortunately, it looks like apt won’t download a single deb if it can’t resolve dependencies, but aptitude will, so we use them together.
I use a separate sources.list here just to speed up the process, as we need to correct apt when we’re finished.
# Download 32bit list files from the mirror specified in /tmp/sources.list apt-get -o=APT::Architecture="i386" -o=Dir::Etc::sourcelist="/tmp/sources.list" -o=Dir::Etc::sourceparts="/dev/null" update # Download the single library. Set libstdc++5 to whatever library you want aptitude -o Apt::Architecture=i386 download libstdc++5 # Return apts lists to their preconfigured state apt-get update # Optionally, install the package dpkg --force-architecture -i libstdc++5_1%3a3.3.6-20~lucid1_i386.deb
Note that if you install the package, it would overwrite the 64bit version of the library if it is installed. 32bit packages meant for 64bit systems, like the ia32-libs package, install to /lib32 and /usr/lib32 to avoid this. You could also extract the package with ‘dpkg -x libstdc++5_1%3a3.3.6-20~lucid1_i386.deb’ and copy the libraries to where you like, then run ‘ldconfig’. The getlibs tool will try to repack debs more appropriately for you, if you like.