23

OS X に ruby​​-oci8 をインストールしようとしています。

ありとなしの両方をインストールしようとしましたsudo

のないエラー メッセージsudo:

gem install ruby-oci8
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /Library/Ruby/Gems/1.8 directory.

エラーメッセージsudo:

sudo gem install ruby-oci8
Password:
Building native extensions.  This could take a while...
ERROR:  Error installing ruby-oci8:
    ERROR: Failed to build gem native extension.

        /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for load library path... 
  DYLD_LIBRARY_PATH is not set.
checking for cc... ok
checking for gcc... yes
checking for LP64... yes
checking for sys/types.h... yes
checking for ruby header... ok
*** 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=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
    --with-instant-client
    --without-instant-client
./oraconf.rb:887:in `get_home': RuntimeError (RuntimeError)
    from ./oraconf.rb:703:in `initialize'
    from ./oraconf.rb:319:in `new'
    from ./oraconf.rb:319:in `get'
    from extconf.rb:18

エラーメッセージ:

Set the environment variable ORACLE_HOME if Oracle Full Client.
Append the path of Oracle client libraries to DYLD_LIBRARY_PATH if Oracle Instant Client.

The 'sudo' command unset some environment variables for security reasons.
Pass required varialbes as follows
     sudo env DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH /usr/bin/gem install ruby-oci8
  or 
     sudo env ORACLE_HOME=$ORACLE_HOME /usr/bin/gem install ruby-oci8


Backtrace:
  ./oraconf.rb:887:in `get_home'
  ./oraconf.rb:703:in `initialize'
  ./oraconf.rb:319:in `new'
  ./oraconf.rb:319:in `get'
  extconf.rb:18

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

12 に答える 12

8

2016 年の古き良き年にこれを機能させようとする人のために、エラー メッセージにページへのリンクが含まれるようになりましたhttp://www.rubydoc.info/github/kubo/ruby-oci8/file/docs/install- Homebrew を使用してそれを行う方法を説明するon-osx.md 。上記の方法はどれもうまくいきませんでした (すべて試してみました) が、この問題を同僚に持ち込んだところ、「エラー メッセージにあるリンクを試してみましたか?」と聞かれました。案の定、それでできました。

于 2016-03-09T22:47:35.600 に答える
1

まず、Web サイトから 32 ビット Linux 用の oracle instantclient バージョン 11.2 をダウンロードします。バージョン 12 以降は、一部のデータベースでは動作しません (私は常に .zip バージョンを取得しているため、ガイドはそれを想定しています。また、ダウンロードしたファイルが /tmp フォルダーにあることも想定しています)。基本バージョン、sqlplus、および sdk が必要になります。これらのダウンロードが完了したら、ターミナルで次のコマンドを実行します

sudo mkdir -p /opt/oracle
sudo cd /opt/oracle
sudo unzip /tmp/instantclient-basic-linux-11.2.0.4.0.zip
sudo unzip /tmp/instantclient-sqlplus-linux-11.2.0.4.0.zip
sudo unzip /tmp/instantclient-sdk-linux-11.2.0.4.0.zip
sudo apt-get install libaio1
sudo cd instantclient_11_2
sudo ln -s libclntsh.so.11.2 libclntsh.so

-ここで、Oracle クライアントの場所を bash シェルに伝える必要があります。したがって、隠しファイルを表示できるようにして、テキスト エディターで $home/.bashrc を開きます。ファイルの末尾に次の行を追加して保存します。

export LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2

-ターミナルで次のコマンドを使用して、.bashrc をソースとして新しい設定をロードします。

source ~/.bashrc

-すべてを正しく行った場合、Oracle データベース アダプター gem をインストールできるはずです。次のコマンドで試してください。

gem install ruby-oci8 -v '2.1.5'
于 2014-08-27T14:28:05.910 に答える
0

何らかの理由で、インスタント client_11_2 で ruby​​-oci8 がインストールされませんでした。ここや他の場所で提案されたすべての回答を試しましたが、うまくいきませんでした。後でインスタント クライアント 12_1 を試してみましたが、問題なく動作しました。

于 2019-08-22T06:02:03.893 に答える