1
/usr/share/tipp10$ ll
insgesamt 9408
drwxr-xr-x   3 myname ssl-cert    4096 Feb 26 20:07 ./
drwxr-xr-x 288 root   root       12288 Feb 26 20:07 ../
-rwxrwxrwx   1 myname ssl-cert    9480 Okt  6  2010 error.wav*
drwxrwxrwx   4 myname ssl-cert    4096 Feb 26 20:07 help/
-rwxrwxrwx   1 myname ssl-cert   16368 Dez 30  2010 license_de.txt*
-rwxrwxrwx   1 myname ssl-cert   16291 Dez 30  2010 license_en.txt*
-rwxrwxrwx   1 myname ssl-cert    5928 Okt  6  2010 metronome.wav*
-rwxrwxrwx   1 myname ssl-cert 9537480 Mär 11  2011 tipp10*
-rwxrwxrwx   1 myname ssl-cert    1255 Nov  7  2008 tipp10.png*
-rwxrwxrwx   1 myname ssl-cert   13312 Dez 18  2010 tipp10v2.template*

/usr/share/tipp10$ pwd tipp10
/usr/share/tipp10

/usr/share/tipp10$ file tipp10
tipp10: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped

manuel@P5KC:/usr/share/tipp10$ ldd tipp10
    \tdas Programm ist nicht dynamisch gelinkt   # (Program is not dynamic linked)

/usr/share/tipp10$ ./tipp10
bash: ./tipp10: File not found

Ubuntu 12.04 x64

What the heck is wrong here?

EDIT: --------------------- SOLUTION ---------------------

.. for those, who dont want to read the complete dup article.

My OS is 64-bit. I though 32-bit apps would run on 64-bit machines. 32-bit apps can run on a 64-bit machine, but only if the requisite supporting libraries are installed. For running 32-bit programs, try installing the ia32-libs package.

  • Could the code be more verbose? There *is* a tipp10 file with appropriate rights, as you can see. – ManuelSchneid3r Feb 26 '13 at 22:10
  • Provide pwd, mount, head ./tipp10... – pbm Feb 26 '13 at 22:10
  • pwd is in question now. Mount? Really? head gives a lot of weird stuff E�����"��ZC���2s�� HF�#. – ManuelSchneid3r Feb 26 '13 at 22:15
  • Provide file and ldd. Also, what kernel do you have? Check with uname -a. – forcefsck Feb 26 '13 at 22:16
  • Is your /usr/share on root partition? If not is that partition mounted with exec or noexec flag? – pbm Feb 26 '13 at 22:18
  • @forcefsck done. Sorry for messing up a while. Yes it is all on one partition. – ManuelSchneid3r Feb 26 '13 at 22:20
  • Is your OS 64-bit? – pbm Feb 26 '13 at 22:20
  • Yes my OS is 64 Bit. Is this a problem? I though 32bit apps would run on 64 Bit machines?!? – ManuelSchneid3r Feb 26 '13 at 22:23
  • 3
    I'd guess you have a newer version kernel (3.x.x) but the file is compiled for an older kernel version (2.6.4) that isn't supported anymore. For running 32bit programs, try installing the ia32-libs package. – forcefsck Feb 26 '13 at 22:26
  • 1
    I'dont thinkt that is kernel issue - I have 3.7 and it's working for me. But I must agree that installing 32 bit compat libs could solve problem. – pbm Feb 26 '13 at 22:32
  • Something is seriously wrong with tipp10: file(1) says it's a 32-bit executable, dynamically linked, but ldd(1) doesn't see that. Trying to run it says "file not found", that could be due to not having the 32-bit dynamic linker available. Try running objdump -x tipp10, it should print a lot of stuff (and not error out). – vonbrand Feb 26 '13 at 22:33
  • I just downloaded deb version of it and ldd works for me... – pbm Feb 26 '13 at 22:36
  • 1
    I am a bit confused by the fact that the error message is prepended by "bash:". bash is not responsible for the linking. Would bash print this message if the execve failed? Thus it might be helpful to have a look at what bash is doing: echo $$ gives you the PID of the shell. In another shell you can start strace: strace -f -p $PID That may give clearer error messages. – Hauke Laging Feb 26 '13 at 22:37
  • Sorry installing ia32-libs with 3Mbps takes a while... – ManuelSchneid3r Feb 26 '13 at 22:49
  • Okay that solved the problem. I wrote the author of the program. Seems like he has to build again. Thank you! – ManuelSchneid3r Feb 26 '13 at 22:59
  • 1
    @UlrichDangel Almost… with all the information, it has to be a missing loader. – Gilles 'SO- stop being evil' Feb 26 '13 at 23:26
  • @forcefsck No, the kernel has been fully backward compatible when it comes to executable formats for a very long time (since the 1.x days when ELF support was introduced). – Gilles 'SO- stop being evil' Feb 26 '13 at 23:27
  • @vonbrand No, the executable is perfectly cromulent, it's just for a different architecture. ldd only supports architectures that can run on the machine. – Gilles 'SO- stop being evil' Feb 26 '13 at 23:28
  • @ManuelSchneid3r 32-bit apps can run on a 64-bit machine, but only if the requisite supporting libraries are installed. – Gilles 'SO- stop being evil' Feb 26 '13 at 23:29
  • @Gilles, I distinctly remember using binutils on a PC looking at Linux SPARC executables... the ELF format is mostly machine agnostic. This is not the cause. – vonbrand Feb 26 '13 at 23:32
  • @vonbrand ldd is not part of binutils, it's a wrapper script that runs the dynamic loader (/lib64/ld-linux-x86-64.so.2 on amd64, /lib/ld-linux.so.2 on i386). – Gilles 'SO- stop being evil' Feb 26 '13 at 23:37

0 Answers0