wslにsqlplusをインストールする方法

wslのUbuntuに、Oracleのsqlplusをインストールします。以下のブログを参考に実施しており、自分の今まで知らなかった点を追記しています。

WSLのUbuntuにsqlplus(Oracle client)を入れる

環境情報

  • Windows10 (1809 17763.557)
  • wsl(Ubuntu 18.04)
  • sqlplus 19.3.0.0.0

作業

モジュールのダウンロード

Oracleのサイトに行って、以下モジュールのrpmパッケージのものをダウンロードしてきます。Ubuntuだけど、rpmパッケージでOK。

  • Basic Package
  • SQL*Plus Package
  • SDK Package

Instant Client Downloads for Linux x86-64 (64-bit)

deb形式に変換

rpmパッケージをdebパッケージに変換するため、 alien をインストールします。

Alienはジョイ・ヘス(Joey Hess)によって作成された、異なるLinuxパッケージの間で相互変換を行うプログラムである。 AlienLinux Standard Base、RPMdeb、Stampede (.slp)、Solaris (.pkg)そしてSlackware (.tgz)各パッケージ間の相互変換をサポートしている。

wikipedia - Alien)

こんなものがあるんですね。

$ sudo apt -y install alien

で、このalienを利用してダウンロードしてきたrpmパッケージを、debパッケージに変換します。

$ sudo alien --to-deb oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm
$ sudo alien --to-deb oracle-instantclient19.3-sqlplus-19.3.0.0.0-1.x86_64.rpm
$ sudo alien --to-deb oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm

変換した作成したdebパッケージをインストールします。

$ sudo dpkg -i oracle-instantclient19.3-basic_19.3.0.0.0-2_amd64.deb
$ sudo dpkg -i oracle-instantclient19.3-sqlplus_19.3.0.0.0-2_amd64.deb
$ sudo dpkg -i oracle-instantclient19.3-devel_19.3.0.0.0-2_amd64.deb

libaio1のインストール

公式でインストールしておいてと言われているライブラリ libaio1 を追加しておきます。

このライブラリにより、ユーザースペースから Linux kernel の非同期 I/O システムコールを呼び出せるようになります。データベースその他の進んだ アプリケーションの性能上重要です。

パッケージ: libaio1

$ sudo apt install libaio1

環境変数の設定

.bash_profile に、各種環境変数情報を記載しておきます。

export ORACLE_HOME=/usr/lib/oracle/19.3/client64
export PATH=~/.local/bin:~/bin:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

確認

ログインし直して環境変数を有効にすると、sqlplusを利用できるようになっています。

$ sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Aug 22 05:16:26 2019
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

SQL>