ちょっと、redmineのプラグインから(つまり、Ruby on Railsから)
Rにアクセスしたいことがあって、
rserveを使ったんだけど、いろいろトラぶったので、
手順をメモメモ。
■概要
大きく言うと、以下の手順
・LinuxにRを入れる
・rserveを入れる
・Rubyからrserveを呼び出すための準備と呼び出し
以下、順に説明
■LinuxにRを入れる
今回はさくらのVPS、Cent OSに入れました。
入れ方は、
CentOS 6.4 に R をインストールする
http://qiita.com/na_ga/items/6ffe45e6ab89e110f709
にあるとおり
rpm -ihv http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
yum -y install R
インストールの確認は
rpm -qa | grep R-
RPMのパッケージの最新版の確認方法は、上記サイトを参照のこと
■rserveを入れる
R on Rails with Rserve
http://web-salad.hateblo.jp/entry/2013/02/07/000000
に書かれていることを行う
つまり
【Rを起動する】
→コマンドラインから
R
と打つ(大文字でR)
そうすると、なんか、説明みたいな、Rのいつものがでてくる
【Rserveインストール】
install.packages("Rserve")
と入力
そうすると、どこから取ってくるかを選ぶようになっている
・ミラーサイトを選ぶ(たしか、一番最後)
・ミラー一覧が出たら、日本(Japan)のどこかを選んだ・・
気がした・・まちがってたらごめん
そうすると、インストールできる
確認の為
library()
を実行して、Rserveあること確認
【Rserve-Ruby-clientインストール】
コマンドライン(ターミナルというべき?)から
gem install rserve-client
確認の為
gem list
■Rubyからrserveを呼び出すための準備と呼び出し
まずは、
【rserveを起動する】
RubyからRの機能を使う
にあるように、コマンドラインから
R CMD Rserve
を実行すると、Rのいつものがでてきたあと、Rserveが動いたことが分かるメッセージ
【bundle installではまる】
このあと、Gemfileをなおす。
今回は、redmineプラグインなので、redmineの入っているフォルダの
htdocsの下にあるGemfileに
gem 'rserve-client', require: 'rserve'
を追加して、
bundle install
を書かれているように実行したら、エラーになった。依存性がおかしいらしい。
ということで、今回はbundle installの代わりに
bundle install --no-deployment
を実行した。これを実行しないと、
Ruby on Railsに関する質問です。
http://q.hatena.ne.jp/1204017444
にあるように、irbやrubyで動かすと動くのに、
Railsで動かすと動かないという状態になる。
【プログラム】
あとは、
require 'rubygems'
require 'rserve'
すれば、いろいろかける。
上記に挙げたサイトにサンプルがあるが、
他に書き方については、別エントリで書きたいと思っている。
Rにアクセスしたいことがあって、
rserveを使ったんだけど、いろいろトラぶったので、
手順をメモメモ。
■概要
大きく言うと、以下の手順
・LinuxにRを入れる
・rserveを入れる
・Rubyからrserveを呼び出すための準備と呼び出し
以下、順に説明
■LinuxにRを入れる
今回はさくらのVPS、Cent OSに入れました。
入れ方は、
CentOS 6.4 に R をインストールする
http://qiita.com/na_ga/items/6ffe45e6ab89e110f709
にあるとおり
rpm -ihv http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
yum -y install R
インストールの確認は
rpm -qa | grep R-
RPMのパッケージの最新版の確認方法は、上記サイトを参照のこと
■rserveを入れる
R on Rails with Rserve
http://web-salad.hateblo.jp/entry/2013/02/07/000000
に書かれていることを行う
つまり
【Rを起動する】
→コマンドラインから
R
と打つ(大文字でR)
そうすると、なんか、説明みたいな、Rのいつものがでてくる
【Rserveインストール】
install.packages("Rserve")
と入力
そうすると、どこから取ってくるかを選ぶようになっている
・ミラーサイトを選ぶ(たしか、一番最後)
・ミラー一覧が出たら、日本(Japan)のどこかを選んだ・・
気がした・・まちがってたらごめん
そうすると、インストールできる
確認の為
library()
を実行して、Rserveあること確認
【Rserve-Ruby-clientインストール】
コマンドライン(ターミナルというべき?)から
gem install rserve-client
確認の為
gem list
■Rubyからrserveを呼び出すための準備と呼び出し
まずは、
【rserveを起動する】
RubyからRの機能を使う
にあるように、コマンドラインから
R CMD Rserve
を実行すると、Rのいつものがでてきたあと、Rserveが動いたことが分かるメッセージ
【bundle installではまる】
このあと、Gemfileをなおす。
今回は、redmineプラグインなので、redmineの入っているフォルダの
htdocsの下にあるGemfileに
gem 'rserve-client', require: 'rserve'
を追加して、
bundle install
を書かれているように実行したら、エラーになった。依存性がおかしいらしい。
ということで、今回はbundle installの代わりに
bundle install --no-deployment
を実行した。これを実行しないと、
Ruby on Railsに関する質問です。
http://q.hatena.ne.jp/1204017444
にあるように、irbやrubyで動かすと動くのに、
Railsで動かすと動かないという状態になる。
【プログラム】
あとは、
require 'rubygems'
require 'rserve'
すれば、いろいろかける。
上記に挙げたサイトにサンプルがあるが、
他に書き方については、別エントリで書きたいと思っている。