2017-06-20 51 views
0

我試圖從終端執行sqlplus。我已經定義.bash_profile中添加如下LD_LIBRARY_PATH線:即使設置了LD_LIBRARY_PATH,SQLPlus客戶端也無法運行

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile 

LD_LIBRARY_PATH=/usr/local/instantclient_12_2:${LD_LIBRARY_PATH} 
export LD_LIBRARY_PATH 

調用sqlplus中我得到這個錯誤:

sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory 

當我明確出口在終端路徑這只是解決:

出口LD_LIBRARY_PATH=/usr/local/instantclient_12_2:${LD_LIBRARY_PATH}

如果我已經在bash_profile中定義了錯誤,爲什麼錯誤仍然存​​在?

P.S:更改後我註銷重新啓動我的機器以刷新環境。但沒有成功。

+1

使用〜/ .bashrc,而不是〜/ .bash_profile中,並把有出口LD_LIBRARY_PATH =在/ usr /本地/ instantclient_12_2:$ {LD_LIBRARY_PATH}。 提到環境文件名稱之前的點。 –

+0

它工作。所以,爲什麼bashrc比bash_profile更受歡迎? – learner

+0

.bash_profile在登錄時執行一次。你可以在那裏放置mem,cpu或磁盤統計信息。另一方面,.bashrc在登錄和shell調用的其他方法上執行。我的意思是sudo,/ bin/bash等。正如你上面所說的.bashrc只是簡單的工作。 –

回答

0

我會推薦你​​在你的.bashrc中設置變量$ ORACLE_HOME。 .bashrc(提到bashrc之前的那個點)應該放在你的主目錄中。使用命令cd到達那裏(沒有參數)。

export PATH=$ORACLE_HOME:$ORACLE_HOME/bim:$PATH 

應該可以解決你的問題:

export $ORACLE_HOME=/usr/local/instantclient_12_2 

然後如下只是用它在你的.bashrc。

如果不是,請考慮使用LD_LIBRARY_PATH變量並將其指向所需的.so庫。

E.g.

export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH 
相關問題