Solaris 10 u10 安裝 oracle 10g2 鏈接時出現錯誤的解決方法

文章來源:http://blog.csdn.net/linghao00/article/details/7984593 權責歸原作者所有

[置頂]Error in invoking target 'client_sharedlib' of makefile '/u01/app/oracle/product/10.2.0/db_1/network
.
分類: linuxoracle2012-09-16 15:23782人閱讀評論(4)收藏舉報


問題描述:
 
Exception String: Error in invoking target 'client_sharedlib' of makefile '/u01/app/oracle/product/10.2.0/db_1/network/lib/ins_net_client.mk'. See
 '/u01/app/oracle/oraInventory/logs/installActions2012-02-21_11-03-51AM.log' for details.
 

 
 
查看make.log得到如下信息
 
*** Error code 1
 make: Fatal error: Command failed for target `client_sharedlib'
 /usr/ccs/bin/make -f ins_net_client.mk client_sharedlib ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1//u01/app/oracle/product/10.2.0/db_1/bin/genclntsh
 ld: fatal: symbol 'ntcontab' in file /u01/app/oracle/product/10.2.0/db_1/lib/libn10.a(ntcontab.o): section [3].data: size 0x60: symbol (address 0, size 0x70)
 lies outside of containing section
 ld: fatal: file processing errors. No output written to /u01/app/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
 genclntsh: Failed to link libclntsh.so.10.1
 
在網上找了很久,發現大概有兩種處理辦法。
 1、是Oracle的版本與Solaris的版本不匹配,說是將64的介質安裝在32位的系統上。但是我可以確定我的Oracle和Solaris的版本是對應的。
 
2、環境變量配置不正確,但是我也找了些安裝Oralce10g的文檔,基本上都應該配置了,我的環境變量配置如下:
 
MAIL=/usr/mail/${LOGNAME:?}  --這個創建完Oracle就存在的,其它是我增加的
 DISPLAY=localhost:0.0
 export DISPLAY
 ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE
 ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
 export ORACLE_HOME
 ORACLE_SID=solarisOracle01
 export ORACLE_SID
 NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
 export NLS_LANG
 PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/ccs/bin:/usr/local/bin
 export PATH
 LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/usr/local/lib
 export LD_LIBRARY_PATH
 umask 022
 
 
 
解決方法:
 
這是個BUG,解決方案如下。
 Cause
 Unpublished bug:
 
Bug 6791866 - ASSEMBLER CODE GENERATED BY GENNTTAB CAUSES LD ERROR IN LATEST SOLARIS BUILDS
 
Which states:
 
Always in the latest Solaris builds

Solaris 11 [Nevada]

and

Solaris 10 Update 10 and above ( Solaris 10 8/11 )
 
due to stricter integrity checking in the linker (ld)

or
 
OS patch 144501-19 installed.
 

Solution
 For versions 10.1.x through 10.2.0.x use the following workaround
 
If this occurs during an installation of the base release or patchset, you will get a pop-up for the link error providing the following options, 'Retry or Continue'.  Leave this popup and login to a new session as the owner of the ORACLE_HOME, and complete the following:
 
1. cd $ORACLE_HOME/bin
 
2. cp gennttab gennttab_orig
 
3. vi gennttab
 將這段配置中的112改成96
 修改前:
 ntcontab:
         .type   ntcontab,@object
         .size   ntcontab,112
         .align  4

修改後:
 
ntcontab:
         .type   ntcontab,@object
         .size   ntcontab,96
         .align  4

4. cd $ORACLE_HOME/network/lib
 
execute command
 
/usr/ccs/bin/make -f ins_net_client.mk ntcontab.o

execute command
 
$ORACLE_HOME/bin/genclntsh
 
 
 
5.現在點retry 就好了
 
 
文章來源:http://blog.csdn.net/linghao00/article/details/7984593 權責歸原作者所有

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章