OT: Looking for a cheap web hosting ISP

Rishi Viner rishi at puredata.com.au
Fri Oct 21 03:24:20 EDT 2005


Just chipping in late with a possible work around for this libc version issue.

> -jailshell-2.05b$ ldd mc
>          linux-gate.so.1 =>  (0xffffe000)
>          libdl.so.2 => /lib/libdl.so.2 (0x00341000)
>          libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4cba8000)
>          libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4cc72000)
>          libm.so.6 => /lib/tls/libm.so.6 (0x00347000)
>          libc.so.6 => /lib/tls/libc.so.6 (0x00223000)
>          /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x0020a000)
>
>
> There you see libc.so.6... the problem in Dans webhost is a wrong
> version of libC, if he uses ldd then search for the file, he'll not
> find it... the server is using an older version of libC, he is
> probably using GLIB2.2 and needs 2.3...

I work with a lot of linux machines here and have encountered this sort of 
thing fairly often. Sometimes a linux distribution will package a "compat" or 
compatibility version of a library when they ship their distro with a new 
version of the library. The idea being that your older software will work 
more easily on the new upgraded distro. So you may be able to install a 
"compat" package to get it working. This is the best solution.

Assuming you can't do this on someone else's web server there is another 
possibility... This assumes you get a message like "libc.so.5 is missing and 
I need this library to run".  Looking at these "compat" packages (often 
installed as say 'libc-6.0-compat') I find that sometimes they just provide a 
symbolic link from the old shared object ('so') library to the new one. For 
example they will provide a link in the library directory from libc.so.5 -> 
libc.so.6. This assumes that the new version of the library is backward 
compatible... Dangerous assumption, but they often are. I have generally had 
good success making these links when needed and the advantage is that you 
might be able to create these symbolic links on the web server even if you 
can't install software/libraries. If this is a possibility for you, you would 
do something like this at the linux command line:

#ln -s /lib/tls/libc.so.5 /lib/tls/libc.so.6
which creates the link from the .5 to the .6.

Now if we do:
# ls -la /lib/tls/
you would see something with:
/lib/tls/libc.so.5  ->  /lib/tls/libc.so.6
Now if your program accesses libc.so.5 it gets redirected to libc.so.6 without 
knowing it. 

I know this will only help in some specific circumstances, but hope it is 
useful anyway. 

Cheers,

-- 
Rishi Viner
--------------
PUREDATA
Australia

www.puredata.com.au



More information about the use-livecode mailing list