新系统下缺少libstdc++-libc6.1-1.so.2低版本库的一种应对方法
把公司一些老软件Lotus Domino (r) Server, Release 6.0.3, September 18, 2003安装到其它新机器上去 ,但启动时报错:/opt/lotus/notes/latest/linux/server: error while loading shared libraries: libstdc++-libc6.1-1.so.2: cannot open
把公司一些老软件Lotus Domino (r) Server, Release 6.0.3, September 18, 2003安装到其它新机器上去 ,但启动时报错:
/opt/lotus/notes/latest/linux/server: error while loading shared libraries: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory
提示缺少libstdc++-libc6.1-1.so.2库。
OS为:RHEL6.0 i386
查看库目录位置
# ll /usr/lib/libstdc++-*
-rwxr-xr-x. 1 root root 262024 Nov 11 2010 libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx. 1 root root 31 Dec 21 18:15 libstdc++-libc6.2-2.so.3 -> libstdc++-3-libc6.2-2-2.10.0.so
看看手动链接是否可以让lotus服务启动。
# cd /usr/lib
# ln -s libstdc++-3-libc6.2-2-2.10.0.so libstdc++-libc6.1-1.so.2
再次启动,缺少libstdc++-libc6.1-1.so.2库的报错提示没有了,但又有了新的提示:
……
Fatal Error signal = 0x0000000b PID/TID = 2057/-214447248
Thu Dec 22 10:48:07 Running NSD
NSD is in progress .................
……
Domino Halted. Type 'quit' to Terminate/Cleanup quit
查看日志信息有: (10) ERROR: can't list open files. rerun as root if needed/required
估计是旧版lotus服务不支持新库文件导致的。从公司的另外一台RHEL4.X i386的机器上复制出libstdc++-2-libc6.1-1-2.9.0.so文件,并上传到新安装机器 /usr/lib/ 下。
重新做链接文件指向
# cd /usr/lib
# ln -s libstdc++-2-libc6.1-1-2.9.0.so libstdc++-libc6.1-1.so.2
# ll libstdc++-*
-rwxr-xr-x. 1 root root 258288 Dec 14 2004 libstdc++-2-libc6.1-1-2.9.0.so
-rwxr-xr-x. 1 root root 262024 Nov 11 2010 libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx. 1 root root 30 Dec 22 10:43 libstdc++-libc6.1-1.so.2 -> libstdc++-2-libc6.1-1-2.9.0.so
lrwxrwxrwx. 1 root root 31 Dec 21 18:15 libstdc++-libc6.2-2.so.3 -> libstdc++-3-libc6.2-2-2.10.0.so
启动lotus服务,呵呵!可以正常运行了。
在i386平台下,是没有问题。然后又测试x86_64平台下,也都可以用此方法。由此可以得出,在把一些旧软件安装到现有的系统时,原有旧软件不支持新版本库。可以通过其它方式,调用一些旧版本库以保证旧软件能够继续在新系统下运行。
题外话:使用虚拟机支持旧服务也是一种不错的选择,这里我们只提供一种解决的思路。
更多推荐
所有评论(0)