V mém případě to bylo centos 6 s pythonem pro pytorch .
Měl jsem chyby jako atd.:
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-
Nainstaloval jsem spolu s glibc-2.17 v místním adresáři /opt/exp_soft/tools
pak jsem nainstaloval do conda env patching tool (lze nainstalovat i pomocí jiných nástrojů):
conda install -c conda-forge patchelf
pak jsem opravil binární soubor pythonu, abych používal jinou cestu glibc (můžete to udělat s jakýmkoli binárním souborem). Uvědomte si, že to změní váš python binární.
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
Další možností je nainstalovat tento skript, pokud máte plný přístup správce:
https://gist.github.com/harv/f86690fcad94f655906ee9e37c85b174
export LD_LIBRARY_PATH=/home/MYNAME/dependency/glibc-2.16/lib
Tato odpověď vysvětluje proč LD_LIBRARY_PATH
nefunguje a co byste měli místo toho udělat.
Četl jsem tvůj příspěvek a zkusil...
python: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument
Chyba obvykle znamená, že máte neshodu mezi ld-linux
a libc.so.6
. Musí zápas.
Pokud používáte přímé vyvolání zavaděče přes /home/MYNAME/.../ld-2.16.so
, musíte také zařídit /home/MYNAME/.../libc.so.6
k načtení.
Můžete to udělat předáním --library-path ...
na ld-2.16.so
nebo nastavení LD_LIBRARY_PATH
přiměřeně.
Váš příkaz s ld-2.16 --library-path ... ls
je téměř opravit. Chybí vám to ld-2.16
nebude vyhledejte PATH
. Musíte ji dát úplnou cesta:ld-2.16 --library-path ... /bin/ls
.