Я устанавливал 64-битный сервер DB2 10.5 (точно не знаю, какой именно пакет продукта - кто-то мне его дал) в 64-битной системе SoftLayer Ubuntu 12.04 Linux, включающей стек LAMP.
Итог первый: получается, что мне не хватало 32-битного libpam и 64-битного libaio, и мне нужно было сделать:
apt-get install libpam0g:i386 libaio1
Пробег большинства людей, несомненно, будет разным. В случае, если к вам относится только часть опыта, и она будет полезна для вас, здесь более подробно.
Перед установкой db2prereqcheck
жаловался:
DBT3514W The db2prereqcheck utility failed to find the following
32-bit library file: "/lib/libpam.so*".
Конечно, все, что у меня было, было:
/lib/x86_64-linux-gnu/libpam.so.0.83.0
/lib/x86_64-linux-gnu/libpamc.so.0
/lib/x86_64-linux-gnu/libpam.so.0
/lib/x86_64-linux-gnu/libpam_misc.so.0.82.0
/lib/x86_64-linux-gnu/libpamc.so.0.82.1
/lib/x86_64-linux-gnu/libpam_misc.so.0
После небольшого осмотра сети я сделал:
apt-get install libpam0g:i386
после чего у меня также было:
/lib/i386-linux-gnu/libpam.so.0.83.0
/lib/i386-linux-gnu/libpamc.so.0
/lib/i386-linux-gnu/libpam.so.0
/lib/i386-linux-gnu/libpam_misc.so.0.82.0
/lib/i386-linux-gnu/libpamc.so.0.82.1
/lib/i386-linux-gnu/libpam_misc.so.0
Но db2prereqcheck все еще подал ту же жалобу.
Несколько мест в сети рекомендовали:
ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so.0
, но это казалось мне гротескным хаком, что наверняка поставило бы меня в другую проблему с различными приложениями дальше по дороге.
Я пробовал несколько вещей с переменными среды, включая LD_LIBRARY_PATH
и LD_LIBRARY_PATH_32
, но ничего не помогло с db2prereqcheck
.
Кто-то, кому я доверяю, сказал, что всё равно стоит продолжить установку. Итак, я сделал
db2_install
(это была удаленная безголовая система), и хотя db2prereqcheck, который запускается как часть установки, жаловался, установка сработала .
К сожалению, db2start пожаловался:
sqllib/adm/db2start: error while loading shared libraries:
libaio.so.1: wrong ELF class: ELFCLASS32
Кто-то, кому я доверял, порекомендовал:
apt-get install libaio1
, который установил 64-битный libaio (до этого моя система включала только 32-битный), после чего я закончил с:
/lib/i386-linux-gnu/libaio.so.1.0.1
/lib/i386-linux-gnu/libaio.so.1
/lib/x86_64-linux-gnu/libaio.so.1.0.1
/lib/x86_64-linux-gnu/libaio.so.1
После этого все прошло хорошо.
Опять же, итог: мне не хватало 32-битного libpam и 64-битного libaio.
Кстати, мой системный образ уже включал в себя пакеты libstdc++6
и lib32stdc++6
- то, чего многие люди, похоже, упускают в своей среде.
Надеюсь, это поможет.
На сервере Ubuntu 14.04.02 (64 бита) я должен был установить следующие пакеты прежде, чем установить DB2 10.5:
ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so.0
Это добилось цели для меня, несмотря на ужасный взлом.
apt-get install libpam0g
сказал, что все было установлено и актуально.
Вам, вероятно, придется работать ldconfig
за установкой i386 версии pam библиотеки; DB2 ищет кэш компоновщика, поскольку это - зависимости, поэтому если это установлено и существует запись в /etc/ld.so.cache.d/
, это должно найти его, если ldconfig
был выполнен.
Выполнение чего-то как strace db2 connect to sample
даст Вам большую информацию.