昨天在一台新的機器裝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.(Unknown Source)
at oracle.sysman.assistants.util.NetworkUtils.(NetworkUtils.java:222)
at oracle.sysman.assistants.util.step.StepContext.(StepContext.java:255)
at oracle.sysman.assistants.dbca.backend.Host.(Host.java:682)
at oracle.sysman.assistants.dbca.ui.UIHost.(UIHost.java:205)
at oracle.sysman.assistants.dbca.ui.InteractiveHost.(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.(Unknown Source)
at java.awt.Component.(Unknown Source)
at oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.(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