GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fehler bei Verwendung einer neueren Version von glibc

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

installiert

dann 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 .


Linux
  1. Fehler bei der Verwendung von GRANT mit IDENTIFIED by password in MySQL

  2. ldconfig-Fehler:ist kein symbolischer Link

  3. Fehler beim Laden gemeinsam genutzter Bibliotheken:libncurses.so.5:

  4. Beim Installieren von Curb (0.8.5) ist ein Fehler aufgetreten

  5. Rails:Deinstallieren Sie eine bestimmte Version einer Bibliothek mit gem

Virtualbox-Fehler – Fehler beim Laden des Ring-0-Moduls VBoxEhciR0.r0

Behebung des OpenCA-Startfehlers Version.pm kann nicht gefunden werden

Ist die Verwendung von Rsync während der Aktualisierung der Quelle sicher?

SMTP-Fehler bei Verwendung von PHPMailer mit GMail-Authentifizierung

PHP5-Curl-Installationsfehler kein Installationskandidat

Kann ein Laptop-Akku bei der Verwendung von Linux explodieren?