How to run old linux code (32bit) on current ubuntu system?
pengyu.ut at gmail.com
Sat Jul 27 21:00:12 UTC 2013
>> ~$ ./y
>> ./y: relocation error: ./y: symbol errno, version GLIBC_2.0 not
>> defined in file libc.so.6 with link time reference
> $ sudo apt-get install libc6-i386
> I've found that for the 32 apps I run, that's all I need. If the
> application still does not run, then use the utility "ldd" on the binary.
> It will list the libraries it needs (you must have the above one installed
> first) and you can install those by hand.
./y: relocation error: ./y: symbol errno, version GLIBC_2.0 not
defined in file libc.so.6 with link time reference
~$ ldd y
linux-gate.so.1 => (0xf77d0000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf75fb000)
I don't complete understand the above output, where is it documented.
(For example, what does '=>' mean? what is the number in the ()?)
I guess it should be the shared library this executable "y" depends. I
find the 2nd and 3rd library files, but not the first one.
~$ ll /lib/ld-linux.so.2
lrwxrwxrwx 1 root root 25 Apr 18 07:14 /lib/ld-linux.so.2 ->
~$ ll /lib/i386-linux-gnu/libc.so.6
lrwxrwxrwx 1 root root 12 Apr 18 07:14 /lib/i386-linux-gnu/libc.so.6
What does the error message "symbol errno, version GLIBC_2.0 not
defined in file libc.so.6 with link time reference" mean?
> If there's a better way to do it using multiarch, then I'd encourage doing
> that instead.
More information about the ubuntu-users