OCI安装错误记录(一)

主机环境:
WINDOWS 2008 X64+ORACLE 11G R2 x64+CYGWIN
初始安装时报以下错误:
[quote]$ gem install -l --no-doc --no-ri ruby-oci8-1.0.2.gem
Building native extensions. This could take a while...
ERROR: Error installing ruby-oci8-1.0.2.gem:
ERROR: Failed to build gem native extension.

/usr/bin/ruby.exe extconf.rb install -l --no-rdoc --no-ri ruby-oci8-1.0.2.gem
checking for load library path... (PATH)...
not found
checking for cc... ok
checking for gcc... yes
checking for LP64... no
checking for ruby header... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby
--with-instant-client
--without-instant-client
./oraconf.rb:642:in `get_home': RuntimeError (RuntimeError)
from ./oraconf.rb:520:in `initialize'
from ./oraconf.rb:238:in `new'
from ./oraconf.rb:238:in `get'
from extconf.rb:24
ok
---------------------------------------------------
error messages:
Set the environment variable ORACLE_HOME if Oracle Full Client.
Append the path of Oracle client libraries to PATH if Oracle Instant Client.

---------------------------------------------------
See:
* http://ruby-oci8.rubyforge.org/en/HowToInstall.html
* http://ruby-oci8.rubyforge.org/en/ReportInstallProblem.html[/quote]


经检查ORACLE 11G x64没有lib32目录,将ORACLE 11G 32bit的lib目录拷贝至ORACLE 11G x64的ORACLE_HOME下,取名为lib32,同时设置环境变量,再次安装时报如下错误
[quote]$ gem install -l --no-rdoc --no-ri ruby-oci8-1.0.2.gem
Building native extensions. This could take a while...
ERROR: Error installing ruby-oci8-1.0.2.gem:
ERROR: Failed to build gem native extension.

/usr/bin/ruby.exe extconf.rb install -l --no-rdoc --no-ri ruby-oci8-1.0.2.gem
checking for load library path... (PATH)...
not found
checking for cc... ok
checking for gcc... yes
checking for LP64... no
checking for ruby header... ok
Get the version of Oracle from SQL*Plus... 1120
checking for OCIInitialize() in oci.h... no
nm: OCI.dll: File format not recognized
nm: OCI.dll: File format not recognized
nm: OCI.dll: File format not recognized
BFD: /cygdrive/c/app/Administrator/product/11.2.0/dbhome_1/OCI/LIB/MSVC/OCI.LIB(OCI.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive
nm: OCI.dll: File format not recognized
BFD: /cygdrive/c/app/Administrator/product/11.2.0/dbhome_1/OCI/LIB/MSVC/OCI.LIB(OCI.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive
nm: OCI.dll: File format not recognized
BFD: /cygdrive/c/app/Administrator/product/11.2.0/dbhome_1/OCI/LIB/MSVC/OCI.LIB(OCI.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive
nm: OCI.dll: File format not recognized
BFD: /cygdrive/c/app/Administrator/product/11.2.0/dbhome_1/OCI/LIB/MSVC/OCI.LIB(OCI.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive
nm: OCI.dll: File format not recognized
BFD: /cygdrive/c/app/Administrator/product/11.2.0/dbhome_1/OCI/LIB/MSVC/OCI.LIB(OCI.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive
nm: OCI.dll: File format not recognized
BFD: /cygdrive/c/app/Administrator/product/11.2.0/dbhome_1/OCI/LIB/MSVC/OCI.LIB(OCI.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive
nm: OCI.dll: File format not recognized
BFD: /cygdrive/c/app/Administrator/product/11.2.0/dbhome_1/OCI/LIB/MSVC/OCI.LIB(OCI.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive
nm: OCI.dll: File format not recognized
BFD: /cygdrive/c/app/Administrator/product/11.2.0/dbhome_1/OCI/LIB/MSVC/OCI.LIB(OCI.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive
nm: OCI.dll: File format not recognized
BFD: /cygdrive/c/app/Administrator/product/11.2.0/dbhome_1/OCI/LIB/MSVC/OCI.LIB(OCI.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive
nm: OCI.dll: File format not recognized...
[/quote]

安装win32_11gR2_client.zip,同时修改环境变量,ORACLE_HOME。LD_LIBARAY_PATH。报如下错误:
[quote]$ gem install -l --no-rdoc --no-ri ruby-oci8-1.0.2.gem
Building native extensions. This could take a while...
ERROR: Error installing ruby-oci8-1.0.2.gem:
ERROR: Failed to build gem native extension.

/usr/bin/ruby.exe extconf.rb install -l --no-rdoc --no-ri ruby-oci8-1.0.2.gem
checking for load library path... (PATH)...
found: /cygdrive/c/app/Administrator/product/11.2.0/client_1/oci.dll looks like an instant client.
checking for cc... ok
checking for gcc... yes
checking for LP64... no
checking for ruby header... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby
--with-instant-client
--without-instant-client
./oraconf.rb:863:in `initialize': RuntimeError (RuntimeError)
from ./oraconf.rb:236:in `new'
from ./oraconf.rb:236:in `get'
from extconf.rb:24
ok
---------------------------------------------------
error messages:
Could not compile with Oracle instant client.
/cygdrive/c/app/Administrator/product/11.2.0/client_1/sdk/lib/msvc/oci.lib could not be found.

---------------------------------------------------
See:
* http://ruby-oci8.rubyforge.org/en/HowToInstall.html
* http://ruby-oci8.rubyforge.org/en/ReportInstallProblem.html


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/ruby-oci8-1.0.2 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/ruby-oci8-1.0.2/ext/oci8/gem_make.out

Administrator@BF /cygdrive/c/dbra/app/softs[/quote]

将ORACLE 11G WIN32的OCI目录下面的子目录拷贝至/cygdrive/c/app/Administrator/product/11.2.0/client_1/sdk下安装成功


[quote]$ gem install -l --no-rdoc --no-ri ruby-oci8-1.0.2.gem
Building native extensions. This could take a while...
Successfully installed ruby-oci8-1.0.2
1 gem installed

Administrator@BF /cygdrive/c/dbra/app/softs
$ [/quote]

运行require,报错
[quote]$ irb
irb(main):001:0> require 'oci8'
LoadError: no such file to load -- oci8
from (irb):1:in `require'
from (irb):1[/quote]

可以看到ruby-oci8已经成功安装
[quote]$ gem list

*** LOCAL GEMS ***

actionmailer (2.0.2)
actionpack (2.0.2)
activerecord (2.1.0, 2.0.2)
activerecord-oracle-adapter (1.0.0.9250)
activerecord-oracle_enhanced-adapter (1.1.8)
activeresource (2.0.2)
activesupport (2.1.0, 2.0.2)
cgi_multipart_eof_fix (2.5.0)
daemons (1.0.10)
fastthread (1.0.1)
gem_plugin (0.2.3)
gettext (1.93.0)
hoe (1.8.2)
log4r (1.0.5)
mongrel (1.1.4)
mongrel_cluster (1.0.5)
net-sftp (2.0.1)
net-ssh (2.0.3)
rails (2.0.2)
rake (0.8.3)
ruby-oci8 (1.0.2)
ruby-prof (0.7.3)
rubyforge (1.0.1)[/quote]

将/cygdrive/c/app/Administrator/product/11.2.0/client_1/的oci.dll拷贝至tmp目录,环境变量恢复ORACLE 11G X64,在PATH前面加上/tmp,再次require
[quote]$ irb
irb(main):001:0> require 'oci8'
=> true
irb(main[/quote]
如果直接替换64位的oci.dll,会报如下错误
[quote]$ irb
irb(main):001:0> require 'oci8'
LoadError: Permission denied - /usr/lib/ruby/gems/1.8/gems/ruby-oci8-1.0.2/lib/oci8lib.so
from /usr/lib/ruby/gems/1.8/gems/ruby-oci8-1.0.2/lib/oci8lib.so
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/gems/1.8/gems/ruby-oci8-1.0.2/lib/oci8.rb:20
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from (irb):1
irb(main):002:0> exit
[/quote]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值