`
itspace
  • 浏览: 960729 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

OCI安装错误记录(一)

阅读更多
主机环境:
WINDOWS 2008 X64+ORACLE 11G R2 x64+CYGWIN
初始安装时报以下错误:
引用
$ 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



经检查ORACLE 11G x64没有lib32目录,将ORACLE 11G 32bit的lib目录拷贝至ORACLE 11G x64的ORACLE_HOME下,取名为lib32,同时设置环境变量,再次安装时报如下错误
引用
$ 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...


安装win32_11gR2_client.zip,同时修改环境变量,ORACLE_HOME。LD_LIBARAY_PATH。报如下错误:
引用
$ 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


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


引用
$ 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
$


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


可以看到ruby-oci8已经成功安装
引用
$ 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)


将/cygdrive/c/app/Administrator/product/11.2.0/client_1/的oci.dll拷贝至tmp目录,环境变量恢复ORACLE 11G X64,在PATH前面加上/tmp,再次require
引用
$ irb
irb(main):001:0> require 'oci8'
=> true
irb(main

如果直接替换64位的oci.dll,会报如下错误
引用
$ 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
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics