I’m migrating from an old CentOs server to a new AlmaLinux machine. I am running a 20 year old 32 bit application (Webinator) on the old server. On the new (AlmaLinux) server, I can see the executable with ls -al, but attempting to run it results in bash saying it can’t find the file. The publisher suggests an update but says there may be a method to run 32 bit applications on the 64 bit system. Is there something I can try?
32-bit executable probably depends on 32-bit dynamic libraries. Alma has some. You should get a list of most with:
dnf list *.i686
You probably need to install at least package glibc.i686 before utilities – like file and ldd – can tell anything about the file.
However, if dynamically linked executable was compiled two decades ago, then there is high chance that it depends on very old versions of libraries, which are not available in Alma. Backward compability has its limits.
Thanks! Based on your suggestion, I’ve made a little progress.
dnf install glibc.i686
I then tried running the application again and got:
./texis: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
I then ran:
yum provides “libcrypt.so.1”
and got
libxcrypt-4.1.1-4.el8.i686 : Extended crypt library for DES, MD5, Blowfish and others
Then ran
dnf install libxcrypt-4.1.1-4.el8.i686
and ran texis again. Each time I was able to find the missing library until I got to this:
./texis: error while loading shared libraries: libtermcap.so.2: cannot open shared object file: No such file or directory
[root@kiwi bin]# yum provides “libtermcap.so.2”
Last metadata expiration check: 3:05:06 ago on Thu 23 Sep 2021 03:41:11 PM MST.
Error: No Matches found
First, you can see the libraries required by executable with: ldd texis
(Not a complete truth though; application could do explicit linking, but that is usually optional.)
Lets look for filename with wildcards: dnf provides */libtermcap\* (Btw, yum is symlink to dnf.)
Result: only ncurses-devel packages have /usr/{lib64,lib}/libtermcap.so
I did test-install ncurses-devel and /usr/lib64/libtermcap.so is a regular file – not a symlink to some libtermcap.so.N.