[ruby]さくらレンタルサーバーにRuby環境をいれてみる(3)

Java&JRuby

4.java

FreeBSDJavaはSunのサイトにはないので、下記のサイトからとってくる。
http://www.freebsdfoundation.org/downloads/java.shtml

サーバーのCPUがわからなかったので

% cat /var/run/dmesg.boot | grep CPU

で調べる。i386っぽいですね。tarballの diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2 をさくっとダウンロードして ~/local/src に配置。

% cd ~/local/src
% tar zxvf diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2
% mv diablo-jdk1.6.0_07 ~/local/
% vi ~/.bashrc
--- 以下を追加 ---
+ # set Java Setting
+ JAVA_HOME=$HOME/local/diablo-jdk1.6.0_07
+ export JAVA_HOME
+ PATH=$PATH:$JAVA_HOME/bin
+ export PATH
---
% java -version
% javac -version
5.JRuby
% rvm install jruby
info: Extracting jruby-bin-1.5.2 ...
info: Building Nailgun
info: Installing JRuby to /home/ohr/.rvm/rubies/jruby-1.5.2
info: Importing initial gems...
info: Installing rake
error: Error running '/home/ohr/.rvm/rubies/jruby-1.5.2/bin/gem install rake ',
please check /home/ohr/.rvm/log/jruby-1.5.2/gems*.log
info: Installing jruby-openssl
error: Error running '/home/ohr/.rvm/rubies/jruby-1.5.2/bin/gem install jruby-openssl ',
please check /home/ohr/.rvm/log/jruby-1.5.2/gems*.log

こけた!どうやらrakeとjruby-opensslのインストール時にこけたっぽい。とりあえずログをみてみる。

% tail ~/.rvm/log/jruby-1.5.2/gem
[2010-08-24 21:57:03] /home/ohr/.rvm/rubies/jruby-1.5.2/bin/gem install rake 
env: jruby: No such file or directory
[2010-08-24 21:57:03] /home/ohr/.rvm/rubies/jruby-1.5.2/bin/gem install jruby-openssl 
env: jruby: No such file or directory

gemがうまく実行されていないっぽい。jrubyがみあたらないってどういう事だろう?gemの中身をみてる。

% less ~/.rvm/rubies/jruby-1.5.2/bin/gem
--- 1行目はこうなってる ---
#!/usr/bin/env jruby
〜
---

jrubyってファイル自体はbinの中に存在する。jrubyの中身をみてみる。

% less ~/.rvm/rubies/jruby-1.5.2/bin/jruby
--- 1行目はこうなってる ---
#!/bin/bash
〜
---

#!/bin/bash ってなってる。

% which bash
/usr/local/bin/bash

ここを/usr/local/bin/bashにかえて試してみる。

% ~/.rvm/rubies/jruby-1.5.2/bin/gem -v
env: jruby: No such file or directory
% ~/.rvm/rubies/jruby-1.5.2/bin/jruby -v
-bash: ./jruby: /bin/bash: bad interpreter: No such file or directory
% vi ~/.rvm/rubies/jruby-1.5.2/bin/jruby
--- 1行目を修正 ---
- #!/bin/bash
+ #!/usr/local/bin/bash
---
% ~/.rvm/rubies/jruby-1.5.2/bin/jruby -v
jruby 1.5.2 (ruby 1.8.7 patchlevel 249) (2010-08-20 1c5e29d) (Diablo Java HotSpot(TM) Client VM 1.6.0_07) [i386-java]
% ~/.rvm/rubies/jruby-1.5.2/bin/gem -v
env: jruby: No such file or directory

まだだめっぽい。#!/usr/bin/env jrubyjrubyがみつからないってことは・・・。

% which jruby
%

そうか、jrubyへのpathが通ってないのか。試しにPATHを通してみる。

% export PATH=$PATH:$HOME/.rvm/rubies/jruby-1.5.2/bin
% ~/.rvm/rubies/jruby-1.5.2/bin/gem -v
1.3.6

動いた!
rvm install jruby を実行した時に、参照されるのは ~/.rvm/rubies/jruby-1.5.2じゃなくて、~/.rvm/src/jruby-1.5.2 っぽいのでそっちのファイルを修正してinstallしなおしてみる。

% rvm uninstall jruby
info: Removing /home/ohr/.rvm/rubies/jruby-1.5.2...
% grep -r "/bin/bash" ~/.rvm/src/jruby-1.5.2/*
/home/ohr/.rvm/src/jruby-1.5.2/bin/jruby:#!/bin/bash
/home/ohr/.rvm/src/jruby-1.5.2/lib/ruby/gems/1.8/gems/ruby-debug-base-0.10.3.2-java/README:  #!/bin/bash
※README の #!/bin/bash は関係なさそうなのでとりあえず無視
% vi ~/.rvm/src/jruby-1.5.2/bin/jruby
--- 1行目を修正 ---
- #!/bin/bash
+ #!/usr/local/bin/bash
---
% rvm install jruby
info: /home/ohr/.rvm/src/jruby-1.5.2 has already been extracted.
info: Building Nailgun
info: Installing JRuby to /home/ohr/.rvm/rubies/jruby-1.5.2
info: Importing initial gems...
info: Installing rake
info: Installing jruby-openssl
% rvm list
rvm rubies
   jruby-1.5.2 [ i386-java ]
=> ruby-1.8.7-p302 [ i386 ]
   ruby-1.9.2-p0 [ i386 ]
% rvm use jruby
info: Using jruby 1.5.2
% ruby -v
jruby 1.5.2 (ruby 1.8.7 patchlevel 249) (2010-08-20 1c5e29d) (Diablo Java HotSpot(TM) Client VM 1.6.0_07) [i386-java]
% rvm info
jruby-1.5.2:
〜

成功したっぽい!
次回はRailsとか入れてみる。