Centos 7.1 – 32 bit program on 64 bit OS

32bit-64bitcentos7

I have successfully installed a piece of 32 bit software on a 64 bit VPS running CentOS 7.1. I had to install the 32 bit library before it would install but now when I try to launch it I am getting this error:

[root@001 bin]# bash ./nre
./nre: ./nre: cannot execute binary file

If I look up the file requirements I I get:

[root@001 bin]# file nre
nre: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked (uses shared libs), stripped

All of my reading points to the error likely being a 32 binary issue but since I already have the library installed I am a little confused as to why I am receiving this error. How do I go about diagnosing if I am indeed missing a library and if I am, which one?

Alright, using the strings -a command I think I was able to produce a list of dependancies. Is there an easy way to determine what I am missing?

/lib/ld-linux.so.2
libnre.so
__gmon_start__
_Jv_RegisterClasses
_init
_ZN11NreLauncher11getInstanceEv
_fini
_ZN11NreLauncher3nreEPKciPPc
libdl.so.2
libstdc++.so.6
__gxx_personality_v0
libm.so.6
libgcc_s.so.1
libpthread.so.0
libc.so.6
_IO_stdin_used
umask
stderr
getuid
fwrite
geteuid
__libc_start_main
_edata
__bss_start
_end
CXXABI_1.3
GLIBC_2.0
PTRh
QVhp

Best Answer

It may be that you are trying to use Bash to execute a binary file.

Instead, try simply running the following:

./nre