In meinem Fall waren es centos 6 mit Python für pytorch .
Ich hatte Fehler wie usw.:
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-
Ich habe neben glibc-2.17 im lokalen Verzeichnis /opt/exp_soft/tools
installiertdann habe ich das Conda env Patching Tool installiert (kann auch mit anderen Tools installiert werden):
conda install -c conda-forge patchelf
dann habe ich die Binärdatei von Python gepatcht, um einen anderen Glibc-Pfad zu verwenden (Sie können dies mit jeder Binärdatei tun). Beachten Sie, dass dies Ihre Python-Binärdatei ändern wird.
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
Eine andere Option ist, einfach dieses Skript zu installieren, wenn Sie vollen Administratorzugriff haben:
https://gist.github.com/harv/f86690fcad94f655906ee9e37c85b174
export LD_LIBRARY_PATH=/home/MYNAME/dependency/glibc-2.16/lib
Diese Antwort erklärt, warum LD_LIBRARY_PATH
nicht funktioniert und was Sie stattdessen tun sollten.
Ich habe deinen Beitrag gelesen und versucht...
python: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument
Der Fehler bedeutet normalerweise, dass Sie eine Nichtübereinstimmung haben zwischen ld-linux
und libc.so.6
. Sie müssen übereinstimmen.
Wenn Sie den direkten Loader-Aufruf über /home/MYNAME/.../ld-2.16.so
verwenden , müssen Sie auch arrangieren für /home/MYNAME/.../libc.so.6
geladen werden.
Sie können dies tun, indem Sie --library-path ...
übergeben bis ld-2.16.so
, oder setzen Sie LD_LIBRARY_PATH
angemessen.
Ihr Befehl mit ld-2.16 --library-path ... ls
ist fast Korrekt. Was Sie vermissen, ist diese ld-2.16
wird nicht suchen Sie Ihren PATH
. Sie müssen es voll geben Pfadname:ld-2.16 --library-path ... /bin/ls
.