64 位 DB2 10.5 在 Ubuntu 12.04 上缺少 32 位 libpam 和 64 位 libaio

use*_*706 9 64-bit database 12.04 software-installation

这发生在我身上。如果它发生在您身上,也许这可以为您节省一些时间。

我在包含 LAMP 堆栈的 SoftLayer 64 位 Ubuntu 12.04 Linux 系统上安装 64 位 DB2 10.5 服务器(不确定具体是什么产品包——有人给了我)。

底线第一:事实证明,我缺少 32 位 libpam 和 64 位 libaio,需要执行以下操作:

   apt-get install libpam0g:i386 libaio1
Run Code Online (Sandbox Code Playgroud)

大多数人的里程数无疑会有所不同。如果只有部分经验适用于您,并且对您有帮助,这里有更多详细信息。

安装前,db2prereqcheck抱怨:

   DBT3514W  The db2prereqcheck utility failed to find the following
   32-bit library file: "/lib/libpam.so*".
Run Code Online (Sandbox Code Playgroud)

果然,我只有:

   /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
Run Code Online (Sandbox Code Playgroud)

在浏览了一些网络后,我做了:

   apt-get install libpam0g:i386
Run Code Online (Sandbox Code Playgroud)

之后我也有:

   /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
Run Code Online (Sandbox Code Playgroud)

但是 db2prereqcheck 仍然提出了同样的抱怨。

网上推荐的一些地方:

   ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so.0
Run Code Online (Sandbox Code Playgroud)

但这在我看来就像一个怪诞的黑客,肯定会让我在更远的道路上使用不同的应用程序遇到不同的麻烦。

我尝试了很多环境变量的东西,包括 LD_LIBRARY_PATHand LD_LIBRARY_PATH_32,但没有任何帮助db2prereqcheck.

我信任的人说无论如何都要继续安装。所以我做了

   db2_install
Run Code Online (Sandbox Code Playgroud)

(这是一个远程无头系统),尽管作为安装一部分运行的 db2prereqcheck 抱怨,但安装确实有效。

可悲的是,db2start 抱怨:

   sqllib/adm/db2start: error while loading shared libraries:
   libaio.so.1: wrong ELF class: ELFCLASS32
Run Code Online (Sandbox Code Playgroud)

我信任的人推荐:

   apt-get install libaio1
Run Code Online (Sandbox Code Playgroud)

它安装了 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
Run Code Online (Sandbox Code Playgroud)

在那之后,一切都很顺利。

同样,底线:我错过了 32 位 libpam 和 64 位 libaio。

顺便说一句,我的系统映像已经包含了包libstdc++6lib32stdc++6 ——很多人在他们的环境中似乎缺少的东西。

希望这可以帮助。

小智 8

在 Ubuntu 服务器 14.04.02(64 位)上,我必须在安装 DB2 10.5 之前安装以下软件包:

  • libx32stdc++6
  • libpam0g:i386
  • libaio1

  • 注意:您可能需要为 i386 架构添加包:`sudo dpkg --add-architecture i386` 然后是 `sudo apt-get update` 最后是 `sudo apt-get install libpam0g:i386`。安装 DB2 的初学者注意事项:您可以使用 Ubuntu 包管理器 `apt-get` 安装这些包。例如:`apt-get install libx32stdc++6`。使用 `sudo` 以 root 身份运行这些命令。(否则您可能没有足够的访问权限。) (3认同)

小智 1

ldconfig安装i386版本的pam库后可能要运行;DB2 在链接器缓存中搜索它的依赖项,因此如果它已安装并且 中有一个条目/etc/ld.so.cache.d/,那么它应该会找到它(如果ldconfig已运行)。

运行类似的东西strace db2 connect to sample会给你很多信息。


小智 0

ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so.0
Run Code Online (Sandbox Code Playgroud)

尽管黑客攻击很丑陋,但这对我来说还是成功了。

apt-get install libpam0g说一切都已安装并且是最新的。