Platform Specific Issues
Intel Mac
Oracle hasn't provided intel mac binary yet. Oracle Instant Client 10.1.0.3 is ppc. It doesn't work with intel ruby.
There are two workarounds.
- compile ruby as ppc. (look at Raimonds Simanovskis's blog)
- use ruby-odbc and a third party ODBC driver (Actual Technologies or OpenLink Software).
Solaris
You need a same compiler which is used to make ruby itself.
There are two ruby packages.
The former is compiled by gcc. The latter is compiled by Sun Studio. The both compilers are freely available.
If you use Blastwave.org's ruby and want not to install Sun Studio, you can edit rbconfig.rb by your self. (look at here)
Linux
Use the same bit-width of libraries with ruby. For example, x86_64 instant client for x86_64 ruby and 32-bit instant client for 32-bit ruby. It depends on the ruby but not on the OS. As for full client, x86_64 ruby cannot use with 32-bit full client, but 32-bit ruby can use with 64-bit full client because 32-bit libraries are in $ORACLE_HOME/lib32.
To check which type of ruby do you use:
file `which ruby`
note: ` is a backquote.
FreeBSD
There are two ways.
- use ruby and instantclient on linux emulator
- use oracle8-client port
In the latter case, compile and install as follows.
- install oracle8-client
cd /usr/ports/databases/oracle8-client make make install
- set an environment variable ORACLE_HOME
export ORACLE_HOME=/usr/local/oracle8-client
- extract ruby-oci8 tarball and replace 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
The rest procedures are described at this page.
note: You have no need to set LD_LIBRARY_PATH because Oracle libraries in oracle8-client port are static ones.
Not all faculties are available. Some tests in 'make check' are failed. Some tests cause busy loop. Check and use it at your own risk.
HP-UX
You need a ruby which is linked with libpthread and libcl.
Look at http://www.alfonsomartone.itb.it/xvpucf.html for more detail.
Windows
On some machines whose disk I/O is busy or which uses a slow disk, you may get a following error.
Permission denied - conftest.exe
Edit mkmf.rb for a workaround.
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
See also: http://abstractplain.net/blog/?p=788.
Keyword(s):
References:[SideMenu] [Report Install Problem]