紅日微風吹幼苗 云外歸鳥知春曉 哪個愛做夢 一覺醒來 床畔蝴蝶飛走了
page top
基於Fedora 10 + Oracle10g的Pro C環境搭建攻略
因為課程設計用到,所以從零開始弄了一整天終於搞定了,把中間過程記一下,以待後用
中間參考了各式各樣的資料,如有侵犯版權請提出,馬上改掉

首先,新建虛擬機,系統類型選2.6.x內核的Linux,硬盤不要貧過頭,起碼12+G。
咱第一次裝的時候就因為硬盤劃分太小,resize2fs又不好用,只好重裝,慘痛教訓OTL

然後裝Fedora,一路默認安裝就行,Fedora還是比較溫柔的XD
裝好之後記得把網絡連接設置好,接下來會用到。

裝好之後就開始給Oracle準備環境。(不是放課後教室或者緊閉的體育倉庫那種東西啦!!)
在終端下一個一個地用yum install [包名]即可自動下載安裝。
什麽?你說有沒有一鍵安裝的方法?你去搞臺莎蒂好了,不止Linux不在話下,連從銀行搞點¥也沒問題,有需要的時候還可以(自主規制)。
根據網上資料和自己測試,主要安裝好以下這幾個包就可以了:
glibc-2.9-3.i686
glibc-devel-2.9-3.i386
compat-db45-4.5.20-5.fc10.i386
compat-gcc-34-3.4.6-9.i386
compat-gcc-34-c++-3.4.6-9.i386
compat-libstdc++-33-3.2.3-64.i386
gnome-libs-1.4.2-10.fc10.i386
libaio-devel-0.3.107-4.fc10.i386
libaio-0.3.107-4.fc10.i386
libXp-1.0.0-11.fc9.i386
注意包名是不包括版本號的,也就是說比如你要安裝compat-gcc-34-c++-3.4.6-9.i386只要在終端下輸入:
yum install compat-gcc-34-c++
即可。
另外在這一系列的安裝中可能出現yum鎖的提示,這裡不用出示勾玉去異議あり,無視就好,會自動解除的。

因為Oracle 10g比較傲嬌挑OS,所以遇到我們的Fedora的時候是會拒絕安裝的,並且聲稱“人家對紅帽子和Suse子之外的OS才沒興趣呢!”,所以要先變裝成紅帽子。

編輯 /etc/redhat-release文件,把內容換成下面一行:
Red Hat Enterprise Linux AS release 3(Taroon)
保存退出。

OK變裝成功,我們離安裝推倒Oracle又近了一步。

接下來是給Oracle上戶口,推了是要負責的,要不就和人渣誠一樣了
su – root //換到root登錄
groupadd dba //添加dba組
groupadd oinstall //Oracle文件所有者的组
useradd -g oinstall -G dba -m -s /bin/bash oracle
passwd oracle//給oracle用戶設密碼

mkdir -p /opt/oracle/product/10.1.0/
chown -R oracle.oinstall /opt/oracle

接下來在 ~/.bash_profile中添加如下內容:

export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export ORACLE_SID=ORCL
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH:/usr/sbin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH;

保存退出。接下來我們就要進入安裝過程了!

因為在光盤上貌似是不能直接安裝的,所以首先要將光盤內容cp到硬盤上,/tmp即可

然後以root登陸
執行$xhost +(爲了防止某不知名的java錯誤)
記得安裝之後要再$xhost –回來,不然會有安全隱患的。
如果出現xhost錯誤,關掉當前終端重開即可

爲了防止身在地球的Oracle想起了還沒有回去結婚的老家一不小心說出火星文,這裡要把語言設置一下:
$unset LANG;unset LANGUAGE
好了,可以選擇「体を求める」……哦不是,是執行./runInstaller。
執行之後就會出現圖形介面。
到了這裡不要猶豫了,一路NEXT,記得SID最好和~/.bash_profile里各個變量選一樣的(網上是這麼說的,但我寫的不一樣貌似也沒遇到問題OTL)

中間會遇到一個窗口跳出來說要在root權限下執行命令
這時候再開一個終端,以root登陸并執行:

/opt/oracle/oraInventory/orainstRoot.sh

然後繼續一路NEXT,過一陣又會遇到一個和剛才差不多的窗口,這次仍然是開終端,以root登錄,執行:

/opt/oracle/product/10.1.0/root.sh

這次會出現一串英文,前面的可以無視,直到出現這個的時候:

Expecting the CRS daemons to be up within 600 seconds.

這時候要再以迅雷不及掩耳盜鈴兒響叮噹之勢開一個終端以root執行:

/etc/init.d/init.cssd run &

即可,之後繼續NEXT到結束,這樣我們就順利安裝推倒了Oracle 10g。可喜可賀!

接下來,就是調教Pro C的時間了。
Pro C的編程這裡不涉及(其實我也還不熟OTL),只調教下編譯

首先寫好Pro C源程序,保存成.pc文件
終端下proc test.pc試試
是不是會出現一串錯誤?回頭看看,你的.pc文件開頭是怎麼寫的?
#include?

因為#include這部份是給C編譯器用的,所以proc是不認的(ProC:#include什麽的,最討厭了!),我們只要用ORA_PROC把這部份讓proc選擇性無視就好。所謂能看的就看,不能看的就別看。

把所有#include用下面兩句括起來,像下面這樣:
#ifndef ORA_PROC
#include
#endif

就可以讓proc選擇性無視C的#include。

.pc沒有問題的話就會生成同名.c文件
這次換gcc上場:
gcc test.c –L $ORACLE_HOME/lib –l clntsh
C部份沒寫錯的話就會生成可執行文件了,趕快執行下試試吧

如果遇到cannot restore segment prot after reloc: Permission denied
那麼十有八九是SELinux搞的鬼,我們把SELinux河蟹掉就好
编辑/etc/selinux/config
找到SELINUX=一句,將後面的值改為disabled,保存,河蟹完畢。

最後,在命令行下執行提示出錯的文件即可,以咱的為例:
chcon -t textrel_shlib_t /opt/oracle/product/10.1.0/db_1/lib/libnnz10.so
chcon –t textrel_shlib_t /opt/oracle/product/10.1.0/db_1/lib/libclntsh.so.10.1

之後執行生成的文件,Mission Accomplished,本次攻略完了,我們下期再見。

发表留言

只对管理员显示

No title
不愧是阿尔法……
虚子 | URL | 2009/07/13/Mon 23:18 [编辑]
Re: No title
> 不愧是阿尔法……

我知道你是想說連技術文都這麼宅氣<( ̄︶ ̄)>
Alpha | URL | 2009/07/15/Wed 10:18 [编辑]

引用
引用 URL

© Alpha的二次元紅茶館. all rights reserved.
Page top
FC2 BLOG