2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dockerで古いRのバージョンを共存させる

Last updated at Posted at 2018-06-28

正確には、古いRを要求するツールをRごとコンテナ化した。複数バージョン管理の方法を他に教えていただいたので、そっちも試してみる。environment moduleで切り替えまでやってみる。

きっかけ

普段はR 3.4.4を使っているのだが、とあるツールを使うときにRのエラーがでた。R 3.1で動作確認してますよってドキュメントに書いてあったのでなんとかして共存させようと試みた。

Rocker

RockerというR使いのためのDockerを謳うイメージを利用した。Rockerのイメージ群にはr-baseからr-studioまでいろいろあるが、今回はr-verというimageを使ってみた。ここに様々なstable versionのRがいろいろ用意されている。 rocker-devで使えるバージョン一覧

実際に試してみた

今回試したのはvdjtoolsというツール。実際のdockerfileはこちら。大雑把なところだけ書く。

Rocker-verを呼び出す

一行目で宣言する。Rのバージョンもここで指定。

FROM rocker/r-ver:3.1

java 8をいれる。


地味にここでつまずいた。特に、r-verはdebian:jessieをデフォルトで使っているため、いつものubuntuと使用感が違ってハマってしまった。なんやかんや調べているとjessieでjavaを入れている人のdockerfileがあったので丸コピした。

RUN \
    echo "===> add webupd8 repository..."  && \
    echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list  && \
    echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list  && \
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886  && \
    apt-get update


RUN echo "===> install Java"  && \
    echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections  && \
    echo debconf shared/accepted-oracle-license-v1-1 seen true | debconf-set-selections  && \
    DEBIAN_FRONTEND=noninteractive  apt-get install -y --force-yes oracle-java8-installer oracle-java8-set-default


RUN echo "===> clean up..."  && \
    rm -rf /var/cache/oracle-jdk8-installer  && \
    apt-get clean  && \
    rm -rf /var/lib/apt/lists/*

使い方

WORKDIRをdataにして、シームレスにaliasできるようにしてみた。bashで下を実行。

$ docker pull yyasumizu/vdjtools
$ alias vdjtools="docker run -v $PWD:/data yyasumizu/vdjtools vdjtools"

dockerのインストールは省略。

dockerを使わない共存方法

複数バージョンをインストールしておいて、environment modulesで切り替える。environment modulesはubuntu 17.10。

Rのインストール

異なるバージョンのRを入れるのはめんどくさそうだったが、楽にしてくれるツールを見つけた。install_R_source

$ git clone https://github.com/DominikMueller64/install_R_source.git
$ cd install_R_source
$ ./install_R_source 3.1.1

途中でエラーが出たので下の記事でfix。
stackoverflow : error: --with-readline=yes (default) and headers/libs are not available

$ /usr/bin/R-3.1.1

を実行して動いたらうまくいっている。

environment module

すみません、力尽きました。リクエストがあれば後日。頑張ってください。

感想

本当は、Annacondaのような便利型バージョン管理ツールを探していた。もっといいやり方があれば教えてください。

参考

R使いのためのDocker「Rocker」を使ってみる(Windows)
増え続ける Dockerfile 用の GitHub Repository をなんとかする
Installing multiple versions of R

2
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?