DB2 10.5 64 bits manquant libpam 32 bits et libaio 64 bits sur Ubuntu 12.04

8

Cela m'est arrivé. Si cela vous arrive, cela peut peut-être vous faire gagner un peu de temps.

J'installais un serveur DB2 10.5 64 bits (je ne sais pas exactement quel package de produit - quelqu'un me l'a donné) sur un système Linux Ubuntu 12.04 SoftLayer 64 bits qui comprenait une pile LAMP.

Conclusion: il s'avère que je manquais libpam 32 bits et libaio 64 bits et que je devais faire:

   apt-get install libpam0g:i386 libaio1

Le kilométrage de la plupart des gens variera sans aucun doute. Dans le cas où seule une partie de l'expérience s'applique à vous et serait utile pour vous, voici plus de détails.

Avant l'installation, se db2prereqcheckplaignait:

   DBT3514W  The db2prereqcheck utility failed to find the following
   32-bit library file: "/lib/libpam.so*".

Effectivement, tout ce que j'avais était:

   /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

Après avoir parcouru un peu le Web, j'ai fait:

   apt-get install libpam0g:i386

après quoi j'ai aussi eu:

   /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

Mais db2prereqcheck a toujours fait la même plainte.

Un certain nombre d'endroits sur le Web ont recommandé:

   ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so.0

mais cela me semblait être un hack grotesque, qui me ferait sûrement des ennuis différents avec des applications différentes plus loin.

J'ai essayé un certain nombre de choses avec des variables d'environnement, y compris LD_LIBRARY_PATHet LD_LIBRARY_PATH_32, mais rien n'a aidé avec le db2prereqcheck.

Quelqu'un en qui j'ai confiance a dit de procéder à l'installation de toute façon. J'ai donc fait

   db2_install

(il s'agissait d'un système sans tête distant), et bien que le db2prereqcheck qui s'exécute dans le cadre de l'installation se soit plaint, l'installation a fonctionné.

Malheureusement, db2start s'est plaint:

   sqllib/adm/db2start: error while loading shared libraries:
   libaio.so.1: wrong ELF class: ELFCLASS32

Quelqu'un en qui j'ai confiance a recommandé:

   apt-get install libaio1

qui a installé libaio 64 bits (avant cela, mon système ne comprenait que 32 bits), après quoi je me suis retrouvé avec:

   /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

Après cela, tout s'est bien passé.

Encore une fois, l'essentiel: il me manquait libpam 32 bits et libaio 64 bits.

BTW, mon image système comprenait déjà des packages libstdc++6et lib32stdc++6 - quelque chose que beaucoup de gens semblent manquer dans leur environnement.

J'espère que cela t'aides.

user253706
la source
2
Veuillez séparer la question de la réponse.
Luis Alvarado

Réponses:

7

Sur le serveur Ubuntu 14.04.02 (64 bits), j'ai dû installer les packages suivants avant d'installer DB2 10.5:

  • libx32stdc ++ 6
  • libpam0g: i386
  • libaio1
tangens
la source
3
Remarque: Vous devrez peut-être ajouter des packages pour l'architecture i386: sudo dpkg --add-architecture i386puis sudo apt-get updateet enfin sudo apt-get install libpam0g:i386. Remarque pour les débutants qui installent DB2: vous installez ces packages à l'aide apt-getdu gestionnaire de packages Ubuntu. Ex: apt-get install libx32stdc++6. Utilisez sudopour exécuter ces commandes en tant que root. (Sinon, vous pourriez ne pas avoir suffisamment d'autorisations d'accès.)
SilentSteel
0
ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so.0

Cela a fait l'affaire pour moi, malgré le vilain hack.

apt-get install libpam0g dit que tout était installé et à jour.

Kevin
la source
0

Vous devrez peut-être exécuter ldconfigaprès avoir installé la version i386 de la bibliothèque pam; DB2 recherche dans le cache de l'éditeur de liens ses dépendances, donc s'il est installé et qu'il y a une entrée /etc/ld.so.cache.d/, il devrait le trouver s'il ldconfiga été exécuté.

Exécuter quelque chose comme strace db2 connect to samplevous donnera beaucoup d'informations.

mikewaters
la source