首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

64 位 Linux 安裝 32 位 Oracle 10g 實戰記錄與避坑指南

     編輯:Oracle 教學

64 位 Linux 安裝 32 位 Oracle 10g 實戰記錄與避坑指南

特定業務場景下(如客戶強制要求),需在 64 位作業系統上安裝 32 位 Oracle 軟體。雖理論可行,但實際過程常因套件相容性問題導致錯誤頻出。本文記錄在 RedHat 4 (x86_64) 上安裝 Oracle 10g 的完整嘗試過程、遭遇的關鍵錯誤與解決嘗試,結論不建議在生產環境採用此架構。

1. 環境準備與 YUM 配置

配置本地光碟為 YUM 來源,並啟用多庫同時安裝 32/64 位套件:

# /etc/yum.conf 關鍵設定
multilib_policy=all

實測 YUM 效果有限,仍需手動處理大量套件相依。

2. Oracle 官方要求的 32 位套件清單

依官方文件安裝對應 32 位套件(實際僅部分成功,標 n 者未裝上):

  • binutils-2.15.92.0.2-10.EL4 n
  • compat-db-4.1.25-9
  • control-center-2.8.0-12 n
  • gcc-3.4.3-9.EL4 n
  • gcc-c++-3.4.3-9.EL4 n
  • glibc-2.3.4-2
  • glibc-common-2.3.4-2 n
  • gnome-libs-1.4.1.2.90-44.1(32 位安裝極困難,但最終成功)
  • libstdc++-3.4.3-9.EL4
  • libstdc++-devel-3.4.3-9.EL4
  • make-3.80-5 n
  • pdksh-5.2.14-30 n
  • sysstat-5.0.5-1 n
  • xscreensaver-4.18-5.rhel4.2 n

補充:官方未列明但 RedHat 4 必裝 libaio、libaio-devel,否則檢測不通過。GUI 缺 libXp 可裝 xorg-x11-deprecated-libs 解決。

3. 關鍵編譯錯誤:genclntsh 連結失敗

安裝過程中報錯:

信息: 開始從衍生進程輸出:
...
/u01/product/10.2.0/db_1/bin/genclntsh
/usr/bin/ld: skipping incompatible /u01/product/10.2.0/db_1/lib/libxml10.a when searching for -lxml10
/usr/bin/ld: cannot find -lxml10
collect2: ld returned 1 exit status
genclntsh: Failed to link libclntsh.so.10.1
make: *** [client_sharedlib] 錯誤 1
異常錯誤: MakefileException
調用 makefile '/u01/product/10.2.0/db_1/network/lib/ins_net_client.mk' 目標 'client_sharedlib' 時出錯

錯誤分析: 連結器嘗試連結 32 位庫 libxml10.a 但發現不相容(可能為 64 位版本),導致找不到 -lxml10,進而無法生成 libclntsh.so.10.1。

後續衍生大量錯誤,安裝被迫終止。

4. 結論與建議

強烈不建議在 64 位 Linux 系統上安裝 32 位 Oracle。 主要原因:

  1. 套件相依性極難滿足,大量 32 位庫缺失或版本衝突
  2. 編譯鏈結階段極易因架構不匹配失敗(如 libxml10、libclntsh)
  3. 維護成本極高,後續補丁升級同樣面臨架構相容問題
  4. 官方支援矩陣不推薦此部署模式

正確做法:64 位 OS 搭配 64 位 Oracle,或使用虛擬化/容器隔離 32 位環境。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved