Nel mio caso era centos 6 con python per pytorch .
Ho avuto errori come, ecc.:
libraries: __vdso_time: invalid mode for dlopen(): Invalid argument
ImportError: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/evaldsu/.conda/envs/conda_env/lib/python3.6/site-
Ho installato insieme a glibc-2.17 nella directory locale /opt/exp_soft/tools
quindi ho installato nello strumento di patching conda env (può essere installato anche utilizzando altri strumenti):
conda install -c conda-forge patchelf
poi ho patchato il binario di python per usare un diverso percorso glibc (puoi farlo con qualsiasi binario). Tieni presente che cambierà il tuo binario python.
patchelf --set-rpath /opt/exp_soft/tools/glibc-2.17/lib:$HOME/.conda/envs/conda_inf/lib:/usr/lib64:/lib64:/lib --set-interpreter /opt/exp_soft/tools/glibc-2.17/lib/ld-linux-x86-64.so.2 /home/evaldsu/.conda/envs/conda_inf/bin/python3.6
Un'altra opzione è semplicemente installare questo script se si dispone dell'accesso completo come amministratore:
https://gist.github.com/harv/f86690fcad94f655906ee9e37c85b174
export LD_LIBRARY_PATH=/home/MYNAME/dependency/glibc-2.16/lib
Questa risposta spiega perché LD_LIBRARY_PATH
non funziona e cosa dovresti fare invece.
ho letto il tuo post e ho provato...
python: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument
L'errore di solito indica che hai una mancata corrispondenza tra ld-linux
e libc.so.6
. Devono corrispondenza.
Se stai usando l'invocazione diretta del caricatore tramite /home/MYNAME/.../ld-2.16.so
, devi anche organizzare per /home/MYNAME/.../libc.so.6
da caricare.
Puoi farlo passando --library-path ...
a ld-2.16.so
o impostando LD_LIBRARY_PATH
in modo appropriato.
Il tuo comando con ld-2.16 --library-path ... ls
è quasi corretta. Quello che ti manca è quel ld-2.16
non cerca il tuo PATH
. Devi darlo pieno percorso:ld-2.16 --library-path ... /bin/ls
.