私はOracle SQL Developerを16.04で動作させようとしています。PhatHVの回答に従ってこれ質問ですが、デスクトップアプリは正常に開き、正しく表示されますが、データベースに接続しようとすると(Windowsで同じデータベースに接続したことがあるので、これは機能するはずです)、エラーウィンドウがポップアップ表示され、
An error was encountered performing the requested operation:
no ocijdbc12 in java.library.path
Vendor code 0
このエラーの原因と修正方法をご存知の方はいらっしゃいますか?
答え1
私の場合、LD_LIBRARY_PATH 環境変数を Instant Client ディレクトリに設定した場合のみ機能し、/etc/ld.so.conf.d/oracle.conf で設定しても実行されませんsudo ldconfig
。
答え2
さて、私は (いくらか助けを借りて) 2 台の別々のコンピューターでこの問題を解決することができましたが、解決までにかなり時間が経っているため、解決のために行ったすべてのことを覚えているわけではありません。少なくとも覚えていることを記載しますが、後でこの回答を修正するかもしれません。私は内部のすべてを理解しているわけではないので、不要な手順がある場合はお詫びします。ただし、元の質問で述べたように、私は PhatHV による別の回答に従ったので、そこに記載された手順をここで繰り返すつもりはありません。ここに来る前に、彼のチュートリアルに従っていることが前提となります。
Oracle Instant Clientをインストールする
SQL Developerバージョン4.2.0では、Instant Clientのバージョン12.2.0.1.0を入手する必要がありました。ダウンロードは次の場所にあります。ここ. アーキテクチャに対応する「Instant Client for Linux」を選択します (私は 64 ビット マシンを使用しているため、x86-64 オプションを開きました)。次の 5 つのファイルをダウンロードします (適切なバージョン番号とアーキテクチャに置き換えてください)。
- Oracle-インスタントクライアント12.2-ベーシック-12.2.0.1.0-1.x86-64.rpm
- Oracle-インスタントクライアント12.2-devel-12.2.0.1.0-1.x86-64.rpm
- Oracle-インスタントクライアント12.2-jdbc-12.2.0.1.0-1.x86-64.rpm
- Oracle-インスタントクライアント12.2-odbc-12.2.0.1.0-1.x86-64.rpm
- Oracle-インスタントクライアント12.2-sqlplus-12.2.0.1.0-1.x86-64.rpm
まだインストールしていない場合は、次のツールをインストールする必要がありますalien
:
sudo apt-get install alien
ダウンロード ディレクトリ (またはファイルを保存した場所) に移動し、sudo alien -i
各ファイルに対して を実行してインストールします。 を使用するのalien
は、インストールする前にまず に変換するためです.deb
。注:alien
はすぐには多くの出力を生成しないため、何も実行していないように見えるかもしれませんが、実際には実行されています。
sudo alien -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-devel-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-jdbc-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-odbc-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86-64.rpm
プロファイルと環境変数を編集する
これらすべてのコマンドを実行するには、root ユーザーである必要があります。 を実行して、sudo su
root としてログインします。
以下の内容を含むように編集します/etc/profile.d/oracle.sh
。
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export TNS_ADMIN=/usr/lib/oracle/ora
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
ここで、変数のバージョン番号に注意してくださいORACLE_HOME
。 も繰り返しますが、私のは です12.2
が、他のものになっている可能性があります。 を設定することも一般的ですが、ファイルがバージョン依存のディレクトリ ( など)に存在しないTNS_ADMIN=$ORACLE_HOME/ora
ように、私は設定しないことを選択しました。.ora
12.2
編集/etc/ld.so.conf.d/oracle.conf
して含む
/usr/lib/oracle/12.2/client64/lib/
もう一度、バージョン番号をメモしてください。
最後に、/etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/default-java/"
CLASSPATH=/usr/lib/jvm/default-java/lib:/usr/lib/jvm/default-java/include:/usr/lib/oracle/12.2/client64/lib
これらのファイルの編集が終わったら、
ldconfig
source /etc/profile.d/oracle.sh
source /etc/environment
通常のユーザーに戻るには、押す<Ctrl> + D
か入力します。exit
サードパーティドライバーとして追加
この手順が厳密に必要かどうかはわかりませんが、私のコンピュータでは機能します。SQL Developer を開くと、 に移動してTools -> Preferences -> Database -> Third Party JDBC Drivers
をクリックできますAdd Entry
。 を開いて/usr/lib/oracle/12.2/client64
をクリックしますlib
。 がハイライト表示されるので、クリックしてselect
リストに追加できます。
この手順の後、SQL Developerを閉じて再度開く必要があります。これをすべて完了したら、うまくいけばこれ以上エラーは発生しなくなります。