2012-05-25 11 views
7

Obecnie mam glibc, który nie obsługuje epolla, więc zainstalowałem nowy glibc na domyślnej lancy, która obsługuje epoll. Mam program Pythona, który używa tego epolu.użyć innej wersji glibc

Próbowałem ustawić LD_LIBRARY_PATH

export LD_LIBRARY_PATH="/home/glibc/lib:$LD_LIBRARY_PATH"

następnie uruchomić ls, to dał mi błędy

ls: /home/glibc/lib/tls/libc.so.6: version 'GLIBC_2.4' not found (required by /lib/libpam.so.0)

ls: /home/glibc/lib/tls/libc.so.6: version 'GLIBC_2.4' not found (required by /lib/libpam_misc.so.0)

Również gdy próbowałem uruchomić Pythona dostałem

python: relocation error: /home/glibc/lib/tls/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference

Jak mogę użyć nowo zainstalowanego glibc zamiast domyślnego?

+0

http://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host –

Odpowiedz

0

Trzeba użyć jawnego wywołania dynamicznego linkera, więc coś takiego:

/home/glibc/lib/ld-linux-x86-64.so.2 --library-path /home/glibc/lib /usr/bin/python 

(ale fakt, że wersja GLIBC_2.4 symbol nie jest dostępny sugeruje, że coś jest nie tak z nowym glibc lub w rzeczywistości nie jest to wcale nowa wersja, wcześniejsza niż glibc 2.4.)

0

Jeśli skompilowałeś glibc, powinieneś mieć skrypt testrun.sh w swoim katalogu budowania. To jest prostsze i bardziej niezawodne niż przy użyciu ld-linux.so:

build/testrun.sh ls 
Powiązane problemy