ChromebookでRとRStudioとRStanをインストールする方法

ChromebookでRとRStudioとRStanをインストールする方法

R

ChromebookもといChrome OSにはLinuxを仮想マシンとして実行する「Crostini」という機能が備わっています。この機能を利用すればLinux上で動かせることのできるRやRStudioが実行できるはずなのでいろいろ試してみました。

結論

先に結論を述べて置きますが、現状ChromebookでRStudioを利用するならDocker一択です。DockerならRStudio自体も、TidyverseもRStanも問題なく動きます。

Linuxアプリとしてインストールすると、RStudio1.1しか起動しない上に、Tidyverseのインストールも面倒、RStanは現状インストールにたどりつくことができませんでした。詳しい方いれば教えてください。

Linuxアプリを使う前提

  • 2019年以降に発売
  • ある程度の性能:Pentium以上は欲しい
  • 日本語入力にひと手間

Linuxアプリケーションを使う前提としては、主に上記の3つ。

すでに数日前から海外メディアを始め多く取り上げられていますが、2019年に発売されるChromebook(Chromebox)から、すべてLinuxアプリに対応…
www.helentech.net

2019年以降発売の機種はCrostiniに対応しています。2018年以前の機種にも対応しているものは存在する模様。詳しくは上記のサイトにまとめられています。

Linuxアプリを使うのにある程度のマシンパワーは欲しいところ。Celeron N3350のASUS C223NAだと通常の使用でも動作がきつかったので、Pentium 4415YとかCore m3、i3は欲しいところ。

ChromeOSのLinuxで日本語入力は、Crostiniの性質上、起動時に設定を読み込ませる方法が見つからなく、手動でFcitxを開始していましたが、ようや…
www.axon.jp

Crostini時代の Chromebook設定をまとめたものです.以下のものが公開されてます Crostini導入編: 健康で文化的な最低限度の生活のためのC…
scrapbox.io

現状Linuxアプリにおける日本語入力は正式対応していないので、ターミナルから色々する必要があり2手間ぐらい必要です。

結論:Dockerを使おう

Dockerを使うと環境構築が非常にかんたんで、特にエラーも吐かなかったので現状こちらがおすすめです。


まずはじめに設定のLinux(ベータ版)をONにしておくのを忘れないようにしましょう。

Dockerのインストール

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

sudo docker run hello-world #これが走ればインストール完了

上記のコマンドを順番に実行して行くとDockerのインストールが完了します。hello-worldのコマンドがちゃんと動作すればインストールができていることになります。

Dockerの操作方法

# 1.イメージを検索。今回はRStanの使えるykunisato/paper-r-jpを利用(検索しなくてもいい)
sudo docker search ykunisato/paper-r-jp

# 2. イメージを取得
sudo docker pull ykunisato/paper-r-jp #イメージを取得
sudo docker images #イメージ一覧

# 3.RStudioの実行。パスワードはRStudio Serverログイン用。コンテナ名は今後管理の際に使うので適当に英数字でつけておこう。
sudo docker run -e PASSWORD=パスワード -p 8787:8787 -v $PWD:/home/rstudio -d --name コンテナ名 ykunisato/paper-r-jp
# ブラウザで"http://loclahost:8787"と入力するとアクセス可能。IDはrstudio。リンクが開けない場合は"http://penguin.termina.linux.test:8787"にアクセス。

#4. 実行中のコンテナ確認と停止
sudo docker ps #実行中のコンテナ一覧を表示。
sudo docker ps -a #停止中のコンテナも表示
sudo docker stop (上で指定したコンテナ名)

# 5. 停止したコンテナをスタート
sudo docker start (上で指定したコンテナ名)

DockerでRStudio Serverを起動するまでの流れはこのコマンドになります。1−3までのコマンドは初めて行う際に一回やるだけで十分になります。

2回目以降RStudio Serverを起動・終了する際には、”sudo docker start (上で指定したコンテナ名)”と”sudo docker stop (上で指定したコンテナ名)”を行うだけで十分。startコマンドで起動すると”http://penguin.termina.linux.test:8787″にブラウザからアクセスすることで通常のRStudioと同様に利用できるようになります。ワークスペースのデータやコードなどは保存してから、stopコマンドを打たないとデータが飛んでしまうので注意。

# 6.コンテナの停止と削除
sudo docker rm (適当なイメージ名)

# 7. コンテナをイメージ化(Hubにpushしないのでユーザー名省略)
sudo docker commit (好きな名前 or コンテナID) (適当なイメージ名):0.0 #0.0はタグ名なのでわかりやすいものでOK

# 8. イメージの削除
sudo docker rmi (適当なイメージ名):0.0
sudo docker rmi ykunisato/paper-r-jp

基本的に使うことはないと思いますが、コンテナの削除などのコマンドも紹介しておきます。

LinuxアプリとしてRとRStudioをインストール

一応インストールはできたのですが、色々問題が生じてしまったので、こちらは非推奨。


# lsbコマンドがインストールされてないので追加
sudo apt install lsb-release

# バージョン確認
lsb_release -a

#これでもできる
cat /etc/debian_version
cat /etc/issue

まずはLinuxバージョンの確認。


DebianでLinux 9.9(Stretch)であることがわかります。

最新のRををインストールする


#最新のRのインストールするための準備
sudo apt install -y gnupg2
sudo apt-key adv --keyserver keys.gnupg.net --recv-key 'E19F5F87128899B192B1A2C2AD5F960A256A04AF'

何もしないままapt installを行うとR3.3.3がインストールされてしまうので最新のRを入れるための準備をします。


sudo vi /etc/apt/sources.list

システム上のファイルを操作するために、viコマンドでターミナル上にテキストエディタを起動します。


"Shift + gキー"でファイルの最後の行へ移動
"o(オー)キー"を押し、一番下の行に新しい行を追加し、挿入モードに切り替えます。"
"Ctrl + Shift + v" で以下の一文をペースト。
deb https://cran.rstudio.com/bin/linux/debian stretch-cran35/
Escキーを押し、挿入モードを終了します。
Shiftキーを押しながら":"を入力、その語“wq”とタイプし、Returnキーを押すと、ファイルに書き込み、viエディターを終了します

上記の操作中なにか問題が発生したら、Escキーを押して、”:q”とタイプすると、保存されず元の状態に戻ります。


sudo apt update
sudo apt upgrade
sudo apt install -y r-base r-base-dev

これらのコマンドでRをインストールします。

RStudioのインストール


#必要なものの準備
sudo apt install -y libgstreamer1.0 libgstreamer-plugins-base1.0 libxslt-dev

#RStudioのダウンロードとインストール
curl -o rstudio.deb https://download1.rstudio.org/rstudio-xenial-1.1.463-amd64.deb
sudo dpkg -i rstudio.deb

これで RStudio1.1のインストールは完了。問題がなければ起動するはず。

ちなみにcurl -oのリンクの部分を、Debian8, 9,Ubuntu 16, Debian10/Ubuntu18のものに切り替えて、バージョン1.2.5033をインストールしたところ、アプリケーション自体のインストールは可能なものの全く起動しませんでした。

TidyverseとRStanのインストール


sudo apt-get install libcurl4-openssl-dev libssl-dev libxml2-dev build-essential g++
sudo apt update
sudo apt upgrade
sudo R

上記のコマンドを実行してからRStudio上でTidyverseをインストールすると無事実行することができました。

sudo add-apt-repository -y "ppa:marutter/rrutter"
sudo add-apt-repository -y "ppa:marutter/c2d4u"
sudo apt-get update
sudo R

install.packages("devtools")
remotes::install_github("stan-dev/rstan", ref = "develop", subdir = "rstan/rstan", build_opts = "")

このコードでは”non zero exit status”とエラーが出てしまい、RStanをインストールすることはできませんでした。

Source:ueponの日々の備忘録 | blog.sellorm.com