这发生在我身上。如果发生这种情况,也许可以为您节省一些时间。
我在包含LAMP堆栈的SoftLayer 64位Ubuntu 12.04 Linux系统上安装了64位DB2 10.5服务器(不确定到底是哪个产品软件包-有人给了我)。
最重要的是:事实证明我缺少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
-许多人似乎在他们的环境中缺少这些东西。
希望这可以帮助。