Mac(Leopard) でRjb
RubyのProc周りで面白い記事(http://www.artonx.org/diary/20100402.html#c02)があったので,
書いてあるコードを追ってみようと思いたったのが始まり.
Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
- 作者: Gregory Brown,高橋征義,笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/03/26
- メディア: 大型本
- 購入: 9人 クリック: 307回
- この商品を含むブログ (42件) を見る
記事内で使われているRjbというライブラリがすんなりインストールできなかったのでメモを残しておきます.
状況
- JAVA_HOMEが無いよ!と出る.
$ sudo gem install rjb Building native extensions. This could take a while... ERROR: Error installing rjb: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb *** 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 (中略) extconf.rb:48: JAVA_HOME is not set. (RuntimeError) (後略)
失敗した対策
ログインしているユーザの環境でJAVA_HOMEを設定してみるも上記と同じ失敗.
$ JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home $ export JAVA_HOME
対処
どうやら,sudo を使っているのでsudoerの設定に追記が必要だったようです*1.
$ sudo visudo # Defaults specification .... Defaults env_keep += "JAVA_HOME" # 追記. 25行目あたり
としておき,su でrootユーザに切り替えてからJAVA_HOMEを設定,Rjbのインストールします.
$ sudo su - # JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home # export JAVA_HOME # gem install rjb -y
*1:viで行コピーと編集が出来る必要あり.