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

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

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

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

8
задан 9 March 2015 в 21:12

3 ответа

На сервере Ubuntu 14.04.02 (64 бита) я должен был установить следующие пакеты прежде, чем установить DB2 10.5:

  • libx32stdc ++ 6
  • libpam0g:i386
  • libaio1
0
ответ дан 9 March 2015 в 21:12
ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so.0

Это добилось цели для меня, несмотря на ужасный взлом.

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

0
ответ дан 9 March 2015 в 21:12

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

Выполнение чего-то как strace db2 connect to sample даст Вам большую информацию.

0
ответ дан 9 March 2015 в 21:12

Другие вопросы по тегам:

Похожие вопросы: