This is an old revision of the document!
32 bit on HPC
Most of our applications are 64 bit so we don't need the 32-bit versions installed. There are almost 300 32-bit applications installed, most of which can be safely removed.
- Relevant CentOS FAQ entry: http://wiki.centos.org/FAQ/General#head-357346ff0bf7c14b0849c3bcce39677aaca528e9
One exception is the compat-libstdc++.i386 and related libraries which simple 32-bit applications need in order to run (we can reinstall it later). nest is one such application:
$ ldd /paracel/paracel/biosoft/PSPP/software/jackal/nest/nest
linux-gate.so.1 => (0xffffe000)
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0xf7ef0000)
libm.so.6 => /lib/libm.so.6 (0x00b3f000)
libc.so.6 => /lib/libc.so.6 (0x009e0000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00b6e000)
/lib/ld-linux.so.2 (0x009c2000)
Compare that with a native 64-bit application:
$ ldd /bin/ls
librt.so.1 => /lib64/librt.so.1 (0x00000039ace00000)
libacl.so.1 => /lib64/libacl.so.1 (0x00000039aca00000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00000039ad200000)
libc.so.6 => /lib64/libc.so.6 (0x00000039aba00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000039ac600000)
/lib64/ld-linux-x86-64.so.2 (0x00000039ab600000)
libattr.so.1 => /lib64/libattr.so.1 (0x00000039b0200000)
libdl.so.2 => /lib64/libdl.so.2 (0x00000039ac200000)
libsepol.so.1 => /lib64/libsepol.so.1 (0x00000039ad600000)
We will make a list of installed 32-bit packages just in case we need to reinstall one: 32bit_packages.txt
# yum list installed \*.i\?86 > 32bit_packages.txt
Then we can remove them:
# yum remove \*.i\?86
There's a few packages and their dependencies we need to reinstall:
# yum install foundation-redhat glibc.i686 redhat-lsb.i386 compat-libstdc++-33.i386 compat-libstdc++-296.i386 libxml2.i386
If you get errors about missing libraries (certain 32 bit apps):
# sbadmin -bash: /usr/bin/sbadmin: /lib/ld-lsb.so.1: bad ELF interpreter: No such file or directory
You can fix that by creating the correct symbolic link to the new version of the library:
# ln -s /lib/ld-2.5.so /lib/ld-lsb.so.1
I don't know which Redhat/CentOS package was originally providing that file, but the symlinks works, and is the solution to a common problem as according to the LSB itself: http://www.linuxbase.org/test/lsb-runtime-test-faq.html
Reinstall the 32-bit X libs:
# yum install $(egrep -i "^libX" 32bit_packages.txt | awk {'print $1'} | xargs)
