Попытка установить приложение Java из файла .bin. При открытии программы установки из командной строки я вижу следующие ошибки:
[boxen]# ./ZendStudio-5_2_0.bin Preparing to install... Extracting the JRE from the installer archive... Unpacking the JRE... Extracting the installation resources from the installer archive... Configuring the installer for this system's environment... awk: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory /bin/ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory hostname: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory Launching installer... grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory /tmp/install.dir.7515/Linux/resource/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
…
Уловка состоит в том, что каждый из этих объектов существует в системе.
# locate libdl.so.2 /usr/lib/libdl.so.2 /usr/lib64/libdl.so.2 # locate libc.so.6 /usr/lib/libc.so.6 /usr/lib/i686/nosegneg/libc.so.6 /usr/lib64/libc.so.6 # locate libnsl.so.1 /usr/lib/libnsl.so.1 /usr/lib64/libnsl.so.1
Если я это сделаю,
echo $LD_LIBRARY_PATH
Я ничего не получаю.
Итак, я добавляю каталоги на путь:
[boxen]# LD_LIBRARY_PATH=/usr/lib:/usr/lib64/:/usr/local/lib/:/usr/local/lib64/ [boxen]# echo $LD_LIBRARY_PATH /usr/lib:/usr/lib64/:/usr/local/lib/:/usr/local/lib64/
И запустите программу установки …
[boxen]# ./ZendStudio-5_2_0.bin Preparing to install... Extracting the JRE from the installer archive... Unpacking the JRE... Extracting the installation resources from the installer archive... Configuring the installer for this system's environment... awk: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory /bin/ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory hostname: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory Launching installer... grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory /tmp/install.dir.8055/Linux/resource/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
…
Точная же ошибка.
Установленная версия Java:
java version "1.7.0_65" OpenJDK Runtime Environment (rhel-2.5.1.2.el7_0-x86_64 u65-b17) OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
Установленный glib:
# rpm -qa | grep glibc glibc-2.17-55.el7.i686 glibc-2.17-55.el7.x86_64 glibc-headers-2.17-55.el7.x86_64 glibc-common-2.17-55.el7.x86_64 glibc-devel-2.17-55.el7.x86_64
Что может заставить установщик не видеть файлы, которые явно существуют и в переменной окружения?
Мне повезло, что мы споткнулись об этом решении, но хотели опубликовать его на случай, если кто-то еще столкнется с этой проблемой при установке устаревшего программного обеспечения.
Assuming the install anywhere script is called Install.bin # cp Install.bin Install.bak # cat Install.bak | sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > Install.bin # rm Install.bak
Это сработало хорошо.
Исправление было первоначально опубликовано в Zend Knowledgebase (теперь 404), оно все еще архивировано на linuxquestions.org .