rdel5安装weblogic815。中间执行./quickstart.sh,出现异常:
/usr/bea/jdk142_08/lib/tools.jar:/usr/bea/weblogic81/common/lib/quickstart.jar
Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/bea/jdk142_08/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
原因是缺少动态链接库,据说缺少支持打印的图形化动态链接库.
首先要用root用户来安装libXp.so,步骤如下:
1)下载.so。google查找一下 libXp.so.6执行安装
2)
把这个文件放到临时目录如/usr/tmp下,然后执行rpm(Red Hat Package Manager)进行安装
# rpm -ivh ./xorg-x11-deprecated-libs-6.9.0-1.112.16.14asp.i386.rpm
warning: ./xorg-x11-deprecated-libs-6.9.0-1.112.16.14asp.i386.rpm: Header V3 DSA signature: NOKEY, key ID 9b3c94f4
Preparing... ########################################### [100%]
package xorg-x11-deprecated-libs-6.9.0-1.112.16.14asp is already installed
3)检查是否安装了此so,使用rmp的查询所有选项<-q(uery)a(ll)>然后抓取出含dep字符的行:
rpm -qa |grep dep
xorg-x11-deprecated-libs-6.9.0-1.112.16.14asp
4)增加一个conf文件让系统能够加载刚才安装的包(被安装到/usr/X11R6/lib目录下了).
在etc/ld.so.conf.d目录下建xorg-x11-deprecated-libs.conf文件,其中包含一行文字"/usr/X11R6/lib"
保存,再运行/sbin/ldconfig。具体如下:
[root@xxx ]#cd etc/ld.so.conf.d/
[root@xxx ]#vi xorg-x11-deprecated-libs.conf
:i
/usr/X11R6/lib
:w
:q
[root@xxx ]# cat xorg-x11-deprecated-libs.conf
/usr/X11R6/lib
[root@xxx ]# /sbin/ldconfig
重新运行./quickstart.sh,就看到跟windows下一样的图形界面了。
另外的常识,现抄一下:
关于/etc/ld.so.conf:
这个文件记录了编译时使用的动态链接库的路径。
默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件
将自己可能存放库文件的路径都加入到/etc/ld.so.conf中是明智的选择
添加方法也极其简单,将库文件的绝对路径直接写进去就OK了,一行一个。例如:
/usr/X11R6/lib
/usr/local/lib
/opt/lib
ldconfig是什么?
它是一个程序,通常它位于/sbin下,供root用户使用。具体作用及用法可以man ldconfig查到
简单的说,它的作用就是将/etc/ld.so.conf列出的路径下的库文件 缓存到/etc/ld.so.cache 以供使用
因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下/sbin/ldconfig
使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用的,结果
编译过程中报错,缺少xxx库,去查看发现明明就在那放着,直想砸机器。
切记改动库文件后一定要运行一下ldconfig,在任何目录下运行都可以。