В 64-битной DB2 10.5 в Ubuntu 12.04 отсутствует 32-битная libpam и 64-битная libaio

8

Это случилось со мной. Если это происходит с вами, возможно, это может сэкономить вам немного времени.

Я устанавливал 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 - то, что многие люди, кажется, упускают в своей среде.

Надеюсь это поможет.

user253706
источник
2
Пожалуйста, отделите вопрос от ответа.
Луис Альварадо

Ответы:

7

На сервере Ubuntu 14.04.02 (64-разрядная версия) мне пришлось установить следующие пакеты перед установкой DB2 10.5:

  • libx32stdc ++ 6
  • libpam0g: i386
  • libaio1
Тангенс
источник
3
Примечание: вам может понадобиться добавить пакеты для архитектуры i386: 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. (В противном случае вам может не хватить прав доступа.)
SilentSteel
0
ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so.0

Это помогло мне, несмотря на уродливый взлом.

apt-get install libpam0g сказал, что все установлено и обновлено.

Кевин
источник
0

Возможно, вам придется запустить ldconfigпосле установки i386 версии библиотеки pam; DB2 выполняет поиск зависимостей в кэше компоновщика, поэтому, если он установлен и в нем есть запись /etc/ld.so.cache.d/, он должен найти его, если ldconfigон был запущен.

Запуск чего-то подобного strace db2 connect to sampleдаст вам много информации.

mikewaters
источник