Я пытаюсь установить Клиент Netezza в системе 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
Какова могла быть проблема, и как я могу зафиксировать ее?
Необходимо подтвердить это путем выполнения
file /usr/local/nz/bin/nzsql
но вероятно, что Ваше netazza приложение является приложением на 32 бита на x86-64 (т.е. 64 бита) установка; необходимо будет установить версию на 32 бита libcomerr2 как так:
sudo apt install libcomerr2:i386
а также для любой из других системных библиотек это зависит от.