I got this seemingly wrong error message from Centos 8 Linux shell :


[[email protected] httpd]# ll
total 566
drwxrwxr-x  3 svennd svennd      3 Dec 11 16:23 apps
drwxrwxr-x 20 svennd svennd      20 Dec 11 16:23 exts
drwxrwxr-x  4 svennd svennd      10 Dec 11 16:23 lib
lrwxrwxrwx  1 svennd svennd      8 Dec 11 16:23 tclsh -> tclsh8.4
-rwxrwxr-x  1 svennd svennd      781385 Dec 11 16:23 tclsh8.4
drwxrwxr-x  3 svennd svennd      5 Dec 11 16:23 work
[[email protected] httpd]# ./tclsh8.4
bash: ./tclsh8.4: No such file or directory

It’s there right ? So let’s check whats going on with this “No such file”.

[[email protected] httpd]# file tclsh8.4
tclsh8.4: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.9, with debug_info, not stripped

The issue is in the 32-bit information you get here, all modern Linux distributions (here Centos 8) are 64-bit; By default they don’t come with 32-bit library’s; You could try to find out what is going on by using ldd & strace. 

But in this case it gave little information :

[[email protected] httpd]# ldd ./tclsh8.4
        not a dynamic executable

The solution is to install glibc for i686 (32 bit);

yum install glibc-devel.i686

And voila, magically the error disappeared and I could run this piece of ancient history.