LoginSignup
2
3

More than 5 years have passed since last update.

CentOS6.9にRenvでRの仮想環境を作る

Posted at

はじめに

Rの仮想環境を使いたいのでRenvをインストールしました。
その時の手順メモ。

そもそもの目的は、spark 2.2.0をR付きでビルドすることだったのですが、SparkRで使用するR (3.3.2)と、ビルド環境のR (3.4.2)が異なっており、起動するとエラーになってしまうため、ビルド環境にR 3.3.2をインストールする必要がありました。

そこで、Renvを使えば簡単に任意のバージョンで仮想環境を作れそうだったのでやってみました。

手っ取り早くインストールしたい人へ

Gistにスクリプト置いときます。
自己責任でどうぞ。

install-Renv.sh

環境

  • OS: CentOS6.9
  • CPUs:4
  • Memory: 8GB

インストールするもの

手順

Install Renv

基本READMEに書いてある通りです。

$ git clone https://github.com/viking/Renv.git .Renv
$ echo 'export PATH="$HOME/.Renv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(Renv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ Renv versions

Install R-build

こちらもREADMEのまま。

$ mkdir -p ~/.Renv/plugins
$ cd ~/.Renv/plugins
$ git clone https://github.com/viking/R-build.git

Install dependencies

依存するパッケージをインストールします。
CentOS6.9にyumでインストールできるパッケージはバージョンが古いので、ソースからビルドします。
これが面倒臭かった。

  • ソースファイルのダウンロード先: $HOME/src
  • ライブラリのインストール先: $HOME/local

必要なソースファイルをダウンロード

$ wget https://jaist.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz -P $HOME/src

$ wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz -P $HOME/src

$ wget https://tukaani.org/xz/xz-5.2.3.tar.gz -P $HOME/src

$ wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz -P $HOME/src

$ wget https://curl.haxx.se/download/curl-7.52.1.tar.gz -P $HOME/src

$ wget http://cran.r-project.org/src/base/R-3/R-3.3.2.tar.gz -P $HOME/src

各tar ballを展開

一気にいきましょう。

$ cd $HOME/src
$ ls | xargs -n 1 -IFILE tar xzvf FILE

Install zlib

$ cd $HOME/src/zlib-1.2.11
$ ./configure --prefix=$HOME/local | tee configure.log
$ make -j 4 | tee make.log
$ make install -j 4 | tee make-install.log

Install bzip2

$ cd $HOME/src/bzip2-1.0.6
$ cp Makefile Makefile.org
$ sed -i 's/CFLAGS=-Wall/CFLAGS=-fPIC -Wall/' Makefile
$ make clean
$ make -j 4 | tee make.log
$ make install -j 4 PREFIX=$HOME/local | tee make-install.log

Install xz

$ cd $HOME/src/xz-5.2.3
$ ./configure --prefix=$HOME/local | tee configure.log
$ make -j 4 | tee make.log
$ make install -j 4 | tee make-install.log

Install pcre

$ cd $HOME/src/pcre-8.40
$ ./configure --prefix=$HOME/local --enable-utf8 | tee configure.log
$ make -j 4 | tee make.log
$ make install -j 4 | tee make-install.log

Install curl

$ cd $HOME/src/curl-7.52.1
$ ./configure --prefix=$HOME/local | tee configure.log
$ make -j 4 | tee make.log
$ make install -j 4 | tee make-install.log

Install R 3.3.2

本来はR-buildを使って様々なバージョンのRをインストールできるはずだったのですが、今回必要だったR 3.3.2のconfigureスクリプトにバグがあって、Renv install 3.3.2としてもエラーになってしまいます。
仕方がないのでマニュアルインストールします。

$ echo 'export CPPFLAGS="-I$HOME/local/include"' >> ~/.bash_profile
$ echo 'export LDFLAGS="-L$HOME/local/lib"' >> ~/.bash_profile
$ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/local/lib' >> ~/.bash_profile
$ source ~/.bash_profile
$ cd $HOME/src/R-3.3.2
$ cp configure configure.org

$ vim configure
# Modify it!
# -  exit(strncmp(ZLIB_VERSION, "1.2.5", 5) < 0);
# +  exit(strncmp(ZLIB_VERSION, "1.2.5", 5) < 0 && (strlen(ZLIB_VERSION) < 6 || strncmp(ZLIB_VERSION, "1.2.10", 6) < 0));

$ ./configure --prefix=$HOME/.Renv/versions/3.3.2 --with-cairo --with-jpeglib --with-readline --with-tcltk --with-blas --with-lapack --enable-R-profiling --enable-R-shlib --enable-memory-profiling | tee configure.log
$ make -j 4 | tee make.log
$ make install -j 4 | tee make-install.log

動作確認

$ Renv versions
* 3.3.2 (set by /home/tommarute/.Renv-version)
$ R --version | head -n 1
R version 3.3.2 (2016-10-31) -- "Sincere Pumpkin Patch"

3.3.2の環境を作れました。

ちなみに

今回のようなバグに当たらなければ、R-buildで簡単インストールができるので、そちらも載せておきます。

なお、ビルドはお茶できるくらい時間がかかりますので、気長に待ちましょう。

$ time Renv install 3.4.0
Downloading http://cran.r-project.org/src/base/R-3/R-3.4.0.tar.gz...
Installing R-3.4.0...
Installed R-3.4.0 to /home/tommarute/.Renv/versions/3.4.0

real    6m9.461s
user    7m52.355s
sys     0m28.685s
$ Renv versions
* 3.3.2 (set by /home/tommarute/.Renv-version)
  3.4.0
$ Renv shell 3.4.0
$ R --version | head -n 1
R version 3.4.0 (2017-04-21) -- "You Stupid Darkness"

おわりに

RenvとR-buildを使ってRの仮想環境を作りました。
最近はなんでも仮想環境あって便利ですね。
anyenvも使ってみたいです。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3