Posted at

rjavaのインストールメモ&rincanterの設定(OSX,Ubuntu)

More than 5 years have passed since last update.

=======


OSX10.7 lion編

rincanterを使用しようとして苦労したので設定をメモ

まずRはhomebrewからインストールしたものを使う前提とします。


jdkのインストール

jdkが必要なのでインストールするのですが、デベロッパサイトからのダウンロードが必要です。デベロッパー登録が必要なので登録しましょうデベロッパー登録したら

デベロッパサイト

https://developer.apple.com/jp/resources/

へ行きMac OS X DownloadsからJava for OS X Developer Packageの最新版をダウンロードしてインストールします。

すでにjreをインストールしていた場合、jdkを使用する必要があるので

ユーティリティからJava Preferenceを起動し優先する順位を最初にします。


Rの設定

次にRにjvm関連の変更を再設定するためにターミナルを立ち上げ

$ R CMD javareconf 

と入力しますrootで実行せよとなっていますがhomebrewではユーザ権限でOKです。

Rを起動しrjavaパッケージをインストールします。

install.packages('rJava')

confiureが走りコンパイルが始まりますエラーが出ずインストールが終了すればOK

コンパイルが失敗する場合、

R_HOMEの設定をする

homebrewでは不要ですがPackage版では必要なようです

jdkがインストールされていないとjnilibがコンパイルできずjni.hが見つからないというエラーがでます。


rincanterのインストール

これでrincanterのインストール準備が完了します。

Clojureへのインストールはleiningenから行うことにすると

project.cljはこんな感じ

incanterとrincanterは最新版をclojars.orgで検索して最新版を指定します。


project.clj

(defproject rincantersamp "1.0.0-SNAPSHOT"

:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.3.0"]
[incanter "1.3.0"]
[org.clojars.guv/rincanter "1.1.0"]]
:dev-dependencies [[swank-clojure "1.4.1"]])


ここからはad-hocなやり方ですが、

lein deps後rjavaのラブラリをlibsコピーします。

対象は


/usr/local/Cellar/r/{Rのバージョン}/R.framework/Resouces/library/rJava/jri

のJRI.jar,REngine.jar,JRIEngine.jar

をプロジェクトのlibsへコピーします。

このままだとlein swank時に実行ライブラリが見つからないと怒られるので

libjri.jnilibをproject.cljと同一のディレクトリへコピーします

そして


$ lein swank

で実行


Ubuntu編

手順は、ほぼOSX編と同じですライブラリ関連とパッケージマネージャーからJDKをインストールすることぐらいが違いとなります。


RとJDKのインストール

パッケージマネージャからRとJDKをインストールする。


共有ライブラリの設定(環境変数)

libjvm.soが無いと怒られるので、ありかの指定をする

.profile または.bashrc等に環境変数の設定をする

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/jvm/default-java/jre/lib/i386/jamvm

を追加


Rの設定

OSX編と同様に

Rにjvm関連の変更を再設定するためにターミナルを立ち上げ

$ R CMD javareconf 

と入力します

Rを起動しrjavaパッケージをインストールします。

install.packages('rJava')

confiureが走りコンパイルが始まりますエラーが出ずインストールが終了すればOK


rincanterのインストール

lein new {project}

でプロジェクトを作成後OSX編と同様に

project.cljを作り


project.clj

(defproject rincantersamp "1.0.0-SNAPSHOT"

:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.3.0"]
[incanter "1.3.0"]
[org.clojars.guv/rincanter "1.1.0"]]
:dev-dependencies [[swank-clojure "1.4.1"]])


ターミナルから

lein deps

を実行します


rJava関連のjarをコピー

lein deps後rjavaのラブラリをlibsコピーします。

rJava関連のjarファイルは

~/R/i686-pc-linux-gnu-library/2.13/rJava/jri

以下にあるので、このディレクトリのJRI.jar, JRIEngine.jar, REngine.jar

をleinで作成したプロジェクトのlibへコピー。


lein swankのための設定

このままではlibjri.soを見つけられないと怒られるので、

leinで作成したプロジェクトのディレクトリへ

~/R/i686-pc-linux-gnu-library/2.13/rJava/jri

から libjri.soをコピーします

そして

$ lein swank

で実行