Is it possible to have 32 bit libraries installed on a 64 bit system?
Solution 1:
For some libraries, it's possible to have both the 32-bit and 64-bit libraries installed on a 64-bit system. This is available through the ia32-libs
package on Ubuntu 10.04 and before. According to the filelist of ia32-libs
, there is no libfuse.so.2
file included. That means that you cannot have both architectures installed at a time.
Since Ubuntu 11.10 Oneiric, it's possible for packages to allow simultaneous installation for different architectures which is called "Multi-Arch". Unfortunately, if I may believe the filelist of libfuse2
on Oneiric, this package has not been transitioned yet. That can be determined from the package dependencies: if a package depends on multiarch-support
(like libdrm2), it has support for multi-arch support. However, this is not a guarantee that the package can be installed for multiple architectures simultaneously.
To query your local cache for the multi-arch capabilities of a package, say libc6
, run:
apt-cache show libc6 | grep ^Multi-Arch:
For this command, the output is Multi-Arch: same
. That means that both the 32-bit and 64-bit versions of a package can be installed at a time. If there is no output, the package is not ready for multi-arch support. Other possible values are foreign
(not co-installable, but it can be used to satisfy the dependencies of other architectures) and allowed
(iirc, only one package is allowed to be installed at a time, but the package can be used to satisfy dependencies of other packages)
You should be able to install 32-bit packages on a 64-bit system with:
sudo apt-get install packagename:i386
Building 32-bit libfuse for 64-bit machines
Since the 32-bit fuse library is not supplied with ia32-libs
, you've no other choice than building it yourself.
-
Install the build dependencies for fuse and get the source code:
sudo apt-get install ia32-libs libc6-i386 sudo apt-get build-dep fuse apt-get source fuse
-
Configure the source tree and build fuse (adjust the directory name if needed):
cd fuse-2.8.4 CFLAGS=-m32 ./configure --host=i386-linux-gnu make -j 50
-
Install the 32-bit fuse library (adjust the version accordingly):
sudo ln -s libfuse.so.2.8.4 /usr/local/lib/libfuse.so.2 sudo install -m644 lib/.libs/libfuse.so.2.8.4 /usr/local/lib/
-
Update the linker cache:
sudo ldconfig
-
(optional) Remove the source files:
cd .. rm -r fuse-2.8.4