仕事の都合でRの2.15を使いたい状況になったのだが、 古いバージョンのRの環境を作るのが想像以上に大変だったので、環境構築の仕方を残しておく。
自分のMac上に環境を作ろうとしたのだが、Apple周りのエラーが大量に出現しだいぶ厳しそうだったので諦めた。 ※ちなみにWindowsだと比較的古いRでも環境を作りやすいとのこと。
私の作った環境は CentOS(6) + R(2.15.2) + R studio server
最終的にはDocker上にその環境をつくってlocalhostにlocal port forwardingして、開発をすることにした。
※R 3.0.0以上ならrockerっていうRのimageがあって即RStudio Server建てられるよ!!
RをCentOSにInstallする
Rのsourceはhttps://cran.r-project.org/src/base/のR-0 ~ R-3から入手できる。ビルド済みのものが動けばそれが一番簡単なのだけど、 難しそうだったのでsourceからビルドする。 今回は2.15.2を入れる想定でかいていく
# Rのビルドに必要なライブラリのinstall yum install -y gcc-gfortran libgfortran gcc-c++ make cmake perl readline-devel yum install -y xorg-x11-server-devel libX11-devel libXt-devel # RのsourceをDonwload # ほかのバージョンを入れたいときは上記リンクからurlを探す cd curl -O https://cran.r-project.org/src/base/R-2/R-2.15.2.tar.gz tar -zxvf R-2.15.2.tar.gz cd R-2.15.2 ./configure --prefix=/opt/R/2.15.2 --enable-R-shlib make -j 4 # -j 4は並列してmakeしたいだけなのでなくても make install ln -sF /opt/R /usr/local/lib64/R ln -sF /usr/local/lib64/R/2.15.2/bin/R /usr/local/bin
これで R
コマンドがうごけばOK
RStudio Serverをインストールする
Rだけ入れても多分大抵の人には使うのが難しいのでRStudio Serverをたてる。サーバをたてると、Web上からRstudioを使えるようになる。
https://www.rstudio.com/products/rstudio/download-server/
ここにあるようRStudio Serverでは3.0.0以上しか動かないので、 以下から欲しいバージョンのRStudio Serverを確認する。
https://support.rstudio.com/hc/en-us/articles/206569407-Older-Versions-of-RStudio
2.11.1以上なら、以下のver0.99で問題なく動く。
# Install Rstudio server cd curl -O https://download2.rstudio.org/rstudio-server-rhel-0.99.903-x86_64.rpm yum install -y rstudio-server-rhel-0.99.903-x86_64.rpm rpm -ihv http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm # 日本語対応 yum -y groupinstall "Japanese Support" yum install -y initscripts # Start Rstudio server rstudio-server start
Dockerで環境を作る場合
docker-composeファイルを作ったので使いたい方は以下からDL https://github.com/cocodrips/enviroment-old-version-r
Dockerfileの{password}
の部分のみ書き換える
docker-compose build docker-compose up
でサーバーが立ち上がるので、 http://localhost:8787 へアクセスするとログイン画面になる。
- Username: rstudio
- Password: 自分で設定した
{password}
でログインすればRstudioが使える!やったー!
Dockerfileとdocker-compose
Githubに上がってるけどここにもはっておく
Dockerfile:
FROM centos RUN yum install -y gcc-gfortran libgfortran gcc-c++ make cmake perl readline-devel RUN yum install -y xorg-x11-server-devel libX11-devel libXt-devel # Install 2.15.2 # Other version: https://cran.r-project.org/src/base/R-2/ RUN cd; curl -O https://cran.r-project.org/src/base/R-2/R-2.15.2.tar.gz RUN cd; tar -zxvf R-2.15.2.tar.gz RUN cd ~/R-2.15.2; ./configure --prefix=/opt/R/2.15.2 --enable-R-shlib RUN cd ~/R-2.15.2; make -j 4 # -j 4は並列してmakeしたいだけなのでなくても RUN cd ~/R-2.15.2; make install # [2.11.0 or higher] Use this script. # [2.11.0 or lower] check document: https://support.rstudio.com/hc/en-us/articles/200552306-Getting-Started RUN cd; curl -O https://download2.rstudio.org/rstudio-server-rhel-0.99.903-x86_64.rpm RUN cd; yum install -y rstudio-server-rhel-0.99.903-x86_64.rpm RUN rpm -ihv http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm RUN yum -y groupinstall "Japanese Support" RUN yum install -y initscripts RUN ln -sF /opt/R /usr/local/lib64/R RUN ln -sF /usr/local/lib64/R/2.15.2/bin/R /usr/local/bin RUN adduser rstudio RUN echo "rstudio:{password}" | chpasswd WORKDIR /r ADD . /r/
docker-compose.yml
version: '3' services: server: build: . working_dir: /r ports: - 8787:8787 volumes: - .:/r command: bash -c "rstudio-server start && /bin/bash" tty: true
さいごに
多分殆どのRユーザにとって古いRを使いたいことってほとんどないと思うから、誰も幸せになれない記事を書いてしまった・・・ Docker初心者なので冗長だったり無駄なこと書いてる可能性が高い(´・ω・`)