Forcing a linux program to read the libc library file from another location -
my machine slackware linux 64 kernel 3.0.4. machine don't have root access , administrator not available.
i trying run program requires library file libc version 2.14 , 1 installed in /lib64 libc-2.13.
i have identical machine have root access. tried copying libc-2.14 file machine first 1 place $home/lib64 folder , adding folder ld_library_path, make new symbolic link libc.so.6 point libc-2.14 file program keeps reading libc.so.6 file in /lib64 points libc-2.13. can't modify in /lib64 because not root.
is there anyway around this? in advance
you need copy other files glibc, too. need program interpreter /lib64/ld-linux-x86-64.so.2, , perhaps libdl.so.2, libm.so.6, libpthread.so.0 , more of these helper libraries.
once have these, can try launch arbitrary programs other glibc using explicit dynamic linker invocation. assuming have copied files current directory, can try this:
./ld-linux-x86-64.so.2 --library-path . --inhibit-cache /bin/bash note applies directly launched binaries (bash in example). child processes (commands launched shell) again use system glibc.
there still problems if did not copy required glibc libraries, or if there have been incompatible changes in locale format, new glibc cannot use system locales.
Comments
Post a Comment