その他
    ホーム 技術発信 DoRuby MacでOracle Instant Clientを利用する

    MacでOracle Instant Clientを利用する

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    先日Snow Leopardが発売されて、私もアップグレードしてみました。OSの起動、停止が早くなり、とても満足です。ただ…

    問題もあって、残念ながら以前書いた記事(http://doruby.kbmj.com/8y/20090505/Mac_OS_X_Leopard__Oracle_)のインストール方法が使えなくなってしまいました。原因はSnow LeopardのJavaのバージョンとLeopardのJavaのバージョンが違うためぽいです。ごにょごにょしたら解決しそうですが、今回はさっぱりあきらめて、Railsで単にローカルマシンから別サーバのOracleへつなぐところまでをやってみました。

    MacPortsから

    	%port search oracle-instantclient
    	oracle-instantclient @10.2.0.4.0 (databases)
    	    Oracle database connection libraries
    	

    上記をインストールします。ただし、そのままインストールしようとしても駄目で、instantclientのzip自体は自分でダウンロードしてくる必要があります。

    http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/intel_macsoft.html

    上記から”instantclient-basic-10.2.0.4.0-macosx-x64.zip “と”instantclient-sdk-10.2.0.4.0-macosx-x64.zip”をダウンロードし、/opt/local/var/macports/distfiles/oracle-instantclientへ配置してください。

    その上でインストールを行います。

    	% sudo port install oracle-instantclient
    	

    これはあっけなく終わる筈です。で、実際Railsから接続する為に activerecord-oracle_enhanced-adapter (1.2.1) などもgem からインストールする必要があるのですが、実際の接続に使う ruby-oci8 1.0.6(200909時点stable最新)もインストールします。

    このインストールですが、先ほど入れたoracle-instantclientのありかをきちんと教えてあげないといけないです。なので

    	% export DYLD_LIBRARY_PATH=/opt/local/lib/oracle
    	% gem install ruby-oci8 -v 1.0.6 -- --with-instant-client
    	

    DYLD_LIBRARY_PATHを設定した上で、ruby-oci8にinstantclientを使うオプションをつけてインストールする必要があるみたいです。

    これで無事別サーバのOracleなどに接続できる筈です。