2013-10-30 153 views
0

我正在安裝Oracle即時客戶端:基本,SDK和SQL * Plus軟件包v 12.1.0.1的gem "ruby-oci8"比我意識到我需要使用Oracle Instant Client v 10.2.0.4。但是煥我嘗試安裝rpm -ivh oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm我有錯誤:如何解決sqlplus衝突?

Preparing...    ########################################### [100%] 
    file /usr/bin/sqlplus from install of oracle-instantclient-sqlplus-10.2.0.4-1.i386 conflicts with file from package oracle-instantclient12.1-sqlplus-12.1.0.1.0-1.i386 

如何解決這個問題?

回答

1

您試圖擁有兩個不同版本的Oracle客戶端庫(10g和12c)。 您可以使用:

  • 取代-i-U(U代表升級)
  • 刪除版本。 10首先(rpm -e
  • 如果你堅持讓兩個differt客戶端版本刪除.rpm包。並使用.zip包裝。並簡單地解開它們變成/opt
+0

後,我有錯誤'的sqlplus 錯誤6初始化的SQL * Plus 消息文件SP1 .msb找不到 SP2-0750:您可能需要將ORACLE_HOME設置爲您的Oracle軟件目錄,但我設置了ORACLE_HOME'env | grep ORACLE_HOME ORACLE_HOME =/usr/lib/oracle/10.2.0.4/client /我需要做什麼? ' –

+0

ORACLE_HOME不僅必須「設置」,還必須「導出」。您必須設置和導出變量「ORACLE_HOME」和LD_LIBRARY_PATH。然後檢查'ldd sqlplus' ldd'libclntsh.so'的輸出。還要檢查'/etc/so.conf.d/'是否是設置庫搜索路徑的另一種方式。我認爲這是對Oracle客戶端庫的.zip版本的記錄和最少的。 – ibre5041

+0

請參閱下面的回答 –

0

LDD的sqlplus

linux-gate.so.1 => (0x006bf000) 
    libsqlplus.so => /usr/lib/oracle/10.2.0.4/client/lib/libsqlplus.so (0x00110000) 
    libclntsh.so.10.1 => /usr/lib/oracle/10.2.0.4/client/lib/libclntsh.so.10.1 (0x006c0000) 
    libnnz10.so => /usr/lib/oracle/10.2.0.4/client/lib/libnnz10.so (0x00218000) 
    libdl.so.2 => /lib/libdl.so.2 (0x001c4000) 
    libm.so.6 => /lib/libm.so.6 (0x001c9000) 
    libpthread.so.0 => /lib/libpthread.so.0 (0x0041e000) 
    libnsl.so.1 => /lib/libnsl.so.1 (0x00439000) 
    libc.so.6 => /lib/libc.so.6 (0x00469000) 
    /lib/ld-linux.so.2 (0x001f8000) 

和LDD libclntsh.so

ldd: ./libclntsh.so: No such file or directory 
+0

使用InstantClient時無需設置ORACLE_HOME。但是你必須有正確的庫搜索路徑設置。你也不能混合不同版本的sqlplus和libs。也不能混合InstantClient,Full客戶端和服務器的二進制文件。 – ibre5041