プラットフォーム固有の問題

Intel Mac

Oracle は intel mac 用のバイナリを提供していません。 Oracle Instant Client 10.1.0.3 は ppc バイナリなので、intel CPU 用の ruby では動かないのです。 (日本のサイトには Mac OS X 用の instant client はないようです、 英語のサイトにあります。)

回避策としては以下の2つがあります。

Solaris

ruby 本体をコンパイルしたのと同じコンパイラが必要です。

ruby のパッケージは2種類あります。

  1. Sunfreeware.com
  2. Blastwave.org

前者は gcc でコンパイルされており、後者はSun Studioでコンパイルされています。 どちらのコンパイラも自由に使用できます。

Blastwave.orgのrubyを使っていて、Sun Studioをインストールしたくない場合は、rbconfig.rb を手で編集する方法もあります。(ここを参照)

Linux

ruby と同じビット幅のライブラリを使用してください。例えば、 x86_64 版の ruby には x86_64 の instant client, 32ビットの ruby には 32ビットの instant client が必要です。OSのビット数ではなく、ruby のビット幅にのみ依存します。 full client の場合、x86_64 版 ruby は 32 ビットの full client を使用できません。しかし、32 ビット ruby は 64 ビットの full client を使用可能です。32ビット版ライブラリが $ORACLE_HOME/lib32 にあるためです。

ruby の種類を確認するには以下のコマンドを実行してください。

 file `which ruby`

注意: ` はバッククォートです。

FreeBSD

2つの方法があります。

  • instantclient を linux emulator 上の ruby で動かす。
  • oracle8-client port を使用。

oracle8-client を使用する場合は以下のようにします。

  • oracle8-client をインストール
 cd /usr/ports/databases/oracle8-client
 make
 make install
  • 環境変数 ORACLE_HOME を設定
 export ORACLE_HOME=/usr/local/oracle8-client
  • ruby-oci8 のソースコードを展開して oraconf.rb を入れ替える。
 tar xvfz ruby-oci8-1.0.0-rc3.tar.gz
 cd ruby-oci8-1.0.0-rc3/ext/oci8
 mv oraconf.rb oraconf.rb.orig
 wget http://ruby-oci8.rubyforge.org/svn/branches/ruby-oci8-1.0/ext/oci8/oraconf.rb

この後の作業は Oracle Full Clientを見てください。

note: oracle8-client port のOracleのライブラリはスタティック リンクライブラリなので、LD_LIBRARY_PATH の設定は必要あり ません。

FreeBSD ではすべての機能は動かないようです。make check を実行すると失敗したり、無限ループに陥いるものがあります。 使えるかどうか試験して、使える機能だけを使用してください。

HP-UX

libpthread、libcl とリンクしてある ruby が必要です。

詳細はhttp://www.alfonsomartone.itb.it/xvpucf.htmlを見てください。

Windows

ディスクI/Oの負荷の高いマシンや、遅いディスクを使っているマシンでは、以下のエラーが起こることがあります。

 Permission denied - conftest.exe

回避策として mkmf.rb を編集してください。

 def try_run(src, opt="")
   if try_link0(src, opt)
     xsystem("./conftest")
   else
     nil
   end
 ensure
   # add the following one line.
   sleep 1 if /mswin32|cygwin|mingw32|bccwin32/ =~ RUBYPLATFORM
   rm_f "conftest*"
 end

参考: http://abstractplain.net/blog/?p=788

Last modified:2007/10/18 09:06:29
Keyword(s):
References:[SideMenu] [インストール時の問題を報告]