nzsql: ошибка при загрузке разделяемых библиотек: libcom_err.so.2: неправильный класс ELF: ELFCLASS64 в Ubuntu 18.04
Я пытаюсь установить Netezza Client в системе Ubuntu 18.04. После установки, как только мы проверили, мы увидели сообщение об ошибке ниже
/usr/local/nz$ nzsql
nzsql: error while loading shared libraries: libcom_err.so.2: wrong ELF class: ELFCLASS64
Мои диагностические шаги:
Найти общие библиотеки
/usr/local/nz$ ldd ./bin/nzsql linux-gate.so.1 (0xf7f13000) libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf7ee0000) libkrb5.so.3 => /usr/local/nz/./bin/../lib/libkrb5.so.3 (0xf7e3a000) libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xf7e08000) libssl.so.10 => /usr/local/nz/./bin/../lib/libssl.so.10 (0xf7da5000) libcrypto.so.10 => /usr/local/nz/./bin/../lib/libcrypto.so.10 (0xf7bf2000) libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf7bda000) libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0xf7bbf000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7bba000) libncurses.so.5 => /lib/i386-linux-gnu/libncurses.so.5 (0xf7b94000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7a92000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf78b4000) libcom_err.so.3 => /usr/local/nz/./bin/../lib/libcom_err.so.3 (0xf78b1000) libk5crypto.so.3 => /usr/local/nz/./bin/../lib/../lib/libk5crypto.so.3 (0xf7882000) libkrb5support.so.0 => /usr/local/nz/./bin/../lib/../lib/libkrb5support.so.0 (0xf7879000) libgssapi_krb5.so.2 => /usr/local/nz/./bin/../lib/libgssapi_krb5.so.2 (0xf783e000) /lib/ld-linux.so.2 (0xf7f15000) libcom_err.so.2 => not found libtinfo.so.5 => /lib/i386-linux-gnu/libtinfo.so.5 (0xf781b000)
Я увидел сообщение "не найдено"
libcom_err.so.2 => not found
Попробуйте установить пакет
/usr/local/nz$ sudo apt-get install libcomerr2 [sudo] password for ocmsapp: Reading package lists... Done Building dependency tree Reading state information... Done libcomerr2 is already the newest version (1.44.1-1ubuntu1.2). The following packages were automatically installed and are no longer required: linux-headers-4.15.0-65 linux-headers-4.15.0-65-generic linux-image-4.15.0-65-generic linux-modules-4.15.0-65-generic Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 36 not upgraded.
Он говорит, что пакет уже есть.
Проверил какая версия уже установлена
:~$ dpkg --listfiles libcom-err2 /. /lib /lib/x86_64-linux-gnu /lib/x86_64-linux-gnu/libcom_err.so.2.1 /usr /usr/share /usr/share/doc /usr/share/doc/libcom-err2 /usr/share/doc/libcom-err2/changelog.Debian.gz /usr/share/doc/libcom-err2/copyright /lib/x86_64-linux-gnu/libcom_err.so.2
Создать мягкую ссылку
sudo ln -s /lib/x86_64-linux-gnu/libcom_err.so.2 libcom_err.so.2
Затем, когда мы проверили
ldd ./bin/nzsql
Тем не менее мы увидели не найденное сообщениеlibcom_err.so.2 => not found
и как только мы пытаемся бежать
nzsql
команда, то мы получили сообщение ниже/usr/local/nz$ nzsql nzsql: error while loading shared libraries: libcom_err.so.2: wrong ELF class: ELFCLASS64
В чем может быть проблема, и как ее исправить?
1 ответ
Вы должны подтвердить это, запустив
file /usr/local/nz/bin/nzsql
но, скорее всего, ваше приложение netazza является 32-битным приложением для установки x86-64 (т.е. 64-битной); вам нужно будет установить 32-битную версию libcomerr2 примерно так:
sudo apt install libcomerr2:i386
а также для любых других системных библиотек, от которых это зависит.