Это случилось со мной. Если это происходит с вами, возможно, это может сэкономить вам немного времени.
Я устанавливал 64-битный сервер DB2 10.5 (точно не знаю, какой именно пакет продукта - кто-то мне его дал) в 64-битной системе Ubuntu 12.04 Linux SoftLayer, включающей стек 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:
источник
sudo dpkg --add-architecture i386
тогдаsudo apt-get update
и наконецsudo apt-get install libpam0g:i386
. Примечание для начинающих, устанавливающих DB2: Вы устанавливаете эти пакеты, используяapt-get
менеджер пакетов Ubuntu. Пример:apt-get install libx32stdc++6
. Используйтеsudo
для запуска этих команд от имени пользователя root. (В противном случае вам может не хватить прав доступа.)Это помогло мне, несмотря на уродливый взлом.
apt-get install libpam0g
сказал, что все установлено и обновлено.источник
Возможно, вам придется запустить
ldconfig
после установки i386 версии библиотеки pam; DB2 выполняет поиск зависимостей в кэше компоновщика, поэтому, если он установлен и в нем есть запись/etc/ld.so.cache.d/
, он должен найти его, еслиldconfig
он был запущен.Запуск чего-то подобного
strace db2 connect to sample
даст вам много информации.источник