在linux上安装64位oracle 10g的经历

昨天在一台新的机器装64位的linux和oracle 10G,32位的linux和oracle装了无数次,心想这对我来讲还不是小菜。没想到遇到了几个非常棘手的问题,今天终于搞定了。
        64位的LINUX安装没有什么区别,只是安装完了网卡找不到,PC机的供应商提供了一个驱动,是C语言的源程序,按照readme的提示make了一下就搞定了。
        然后是把64位的oracle安装包传上去,先gunzip解压,再cpio -idmv < 文件名展开。打开oracle的官方文档,发现64位的安装方法居然和32位的一模一样,一路轻车熟路,装完了,只是没有建库。
        下午用建库,刚刚输完dbca,就出现了下面的提示:
$ dbca
UnsatisfiedLinkError exception loading native library: njni10
Exception in thread "main" java.lang.UnsatisfiedLinkError: get
        at oracle.net.common.NetGetEnv.get(Native Method)
        at oracle.net.config.Config.getNetDir(Unknown Source)
        at oracle.net.config.Config.initConfig(Unknown Source)
        at oracle.net.config.Config.<init>(Unknown Source)
        at oracle.sysman.assistants.util.NetworkUtils.<init>(NetworkUtils.java:222)
        at oracle.sysman.assistants.util.step.StepContext.<init>(StepContext.java:255)
        at oracle.sysman.assistants.dbca.backend.Host.<init>(Host.java:682)
        at oracle.sysman.assistants.dbca.ui.UIHost.<init>(UIHost.java:205)
        at oracle.sysman.assistants.dbca.ui.InteractiveHost.<init>(InteractiveHost.java:54)
        at oracle.sysman.assistants.dbca.Dbca.getHost(Dbca.java:160)
        at oracle.sysman.assistants.dbca.Dbca.execute(Dbca.java:94)
        at oracle.sysman.assistants.dbca.Dbca.main(Dbca.java:180)
        上网查了半天,看来是少装了包,按照oracle的官方文档检查,包都有呀!再把网上网友推荐的各种包都装上试试,4张linux的安装盘在光驱里换来换去,装了各种包都没有用,一直到下班也没有搞定。
        对这个linux的安装盘没有信心了,吸取换盘麻烦的教训,晚上换回家下载一个DVD的安装盘,一上centos的网站,发现最新的4已经的4.6了,刚刚 出来的。于是下载一个4.6的DVD安装盘,2.5G下了一晚上,60K多的流量,搞得今天上班也迟到了。用刚刚刻好的DVD安装盘重新安装LINUX, 但刚刚装ORACLE时就遇到了问题,比昨天更糟!
$ ./runInstaller
Starting Oracle Universal Installer...

Checking installer requirements...

Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
                                      Passed


All installer requirements met.

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2008-01-09_12-23-11PM. Please wait ...[oracle@web9p database]$ Oracle Universal Installer, Version 10.2.0.1.0 Production
Copyright (C) 1999, 2005, Oracle. All rights reserved.

Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall2008-01-09_12-23-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory occurred..
java.lang.UnsatisfiedLinkError: /tmp/OraInstall2008-01-09_12-23-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at sun.security.action.LoadLibraryAction.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
        at sun.awt.DebugHelper.<clinit>(Unknown Source)
        at java.awt.Component.<clinit>(Unknown Source)
        at oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.<init>(OiifmGraphicInterfaceManager.java:222)
        at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.createInterfaceManager(OiicSessionInterfaceManager.java:193)
        at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:202)
        at oracle.sysman.oii.oiic.OiicInstaller.getInterfaceManager(OiicInstaller.java:436)
        at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:926)
        at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)
        从提示上看是少了一个libXp.so.6文件,但不知道这个文件在哪个包里,看来得用yum了,幸好是DVD的安装盘,本身就带一个yum的源
        把DVD mount到/mnt目录,按下面的方法配置
[c4-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt
gpgcheck=0
enabled=1
        用yum whatprovides libXp.so.6一查,发现在包xorg-x11-deprecated-libs中。
        用rpm装的时候提示和其它包有依赖关系,装不上,用yum装一下
# yum install xorg-x11-deprecated-libs

Transaction Summary
=============================
Install      7 Package(s)        
Update       0 Package(s)        
Remove       0 Package(s)        
Total download size: 4.3 M
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: zlib                         ######################### [1/7]
  Installing: freetype                     ######################### [2/7]
  Installing: expat                        ######################### [3/7]
  Installing: fontconfig                   ######################### [4/7]
  Installing: xorg-x11-libs                ######################### [5/7]
  Installing: xorg-x11-deprecated-libs     ######################### [6/7]
  Installing: xorg-x11-Mesa-libGL          ######################### [7/7]

Installed: xorg-x11-deprecated-libs.i386 0:6.8.2-1.EL.33
Dependency Installed: expat.i386 0:1.95.7-4 fontconfig.i386 0:2.2.3-13.el4 freetype.i386 0:2.1.9-6.el4 xorg-x11-Mesa-libGL.i386 0:6.8.2-1.EL.33 xorg-x11-libs.i386 0:6.8.2-1.EL.33 zlib.i386 0:1.2.1.2-1.2
原来和7个包有依赖关系。
好!oracle软件终于装上了!
现在建库,老天!和昨天一样的提示:
$ dbca
UnsatisfiedLinkError exception loading native library: njni10
Exception in thread "main" java.lang.UnsatisfiedLinkError: get
        at oracle.net.common.NetGetEnv.get(Native Method)
        at oracle.net.config.Config.getNetDir(Unknown Source)
        at oracle.net.config.Config.initConfig(Unknown Source)
        at oracle.net.config.Config.<init>(Unknown Source)
        at oracle.sysman.assistants.util.NetworkUtils.<init>(NetworkUtils.java:222)
        at oracle.sysman.assistants.util.step.StepContext.<init>(StepContext.java:255)
        at oracle.sysman.assistants.dbca.backend.Host.<init>(Host.java:682)
        at oracle.sysman.assistants.dbca.ui.UIHost.<init>(UIHost.java:205)
        at oracle.sysman.assistants.dbca.ui.InteractiveHost.<init>(InteractiveHost.java:54)
        at oracle.sysman.assistants.dbca.Dbca.getHost(Dbca.java:160)
        at oracle.sysman.assistants.dbca.Dbca.execute(Dbca.java:94)
        at oracle.sysman.assistants.dbca.Dbca.main(Dbca.java:180)
从网上搜索的情况看,还有包没有装,很可能是
glibc-32bit-8.1-9
glibc-devel-32bit-8.1-9
中的第二个包没有装,oracle也不提示!
用rpm装上,然后重新连一下,
$ORACLE_HOME/bin/relink all
行了!搞定!
最大的教训,安装linux时还是用老版本好呀!oracle的人写文档时是基于老版本测试的,新版本里一些包反而没有!