ChromebookにLinux入れてRを使う・・

#突然ですが、Rを始めます！・・
MemSQLの検証を進めて行く中で、ZoomdataやExcel（MySQLのフリで）との連携が確認出来ましたので、その次のネタとしてMySQLのフリをさせて連携可能と思われる、深度解析系のエンジンとして有名なRを少し弄ってみることにします。（RはAIや機械学習にも応用が可能と聞いていますので・・・）

##さて、何に入れようか・・・・・
R自体は有名なモノなので、公開されているホームページ経由で無償利用が可能なパッケージをダウンロードしてくれば、さほど問題なく使えるようになるだろう・・・・と、極めて短絡歴な発想からこの取り組みが始まり、まずはその環境を構築する環境整備からスタートしました。

###物理or仮想？？
まずは、今回の壮大なプロジェクトの為の入れ物を決める必要があります。プラットフォームとしては、物理環境に直接行くのか、何かの仮想環境にを決めなければなりません。既にMemSQLやZoomdataで既に幾つかの**made in 秋葉原**システムは塞がっていますし、その他のマシンも既に別の検証用にリザーブされている状況・・

どうしたものか・・・

**そうだ！Chromebookに仮想的にLinuxを導入出来る様な話を聞いた事が有る！**

という極めて短絡的＆衝動的な思い付きで、この基本のプラットフォーム構築を始める事にしました。実際、今回の利用状況を考えた場合に、通常のメール・プレゼン等の業務をクラウド連携させたChromebookで行い、あれこれ弄りながら、最悪環境の総取り換えも可能な環境を構築し、年明け以降の状況を鑑みて作業を持ち歩ける状態前提のChromebook裏側に構築すれば・・・・##スタバとかでも作業ができる##・・・という事もあり（自己中心的な働き方改革。。）即断即決で環境構築の準備に入った次第です。

###今回のChromebook
引っ張り出してきたのが、**液晶画面”だけで”**選んだGoogleさんのご謹製Chromebook（と言われている）、2015年モデルのPixcel Bookで、スペック的にも”なぜこれでChromebook?”と当時驚いた構成（m7、16GBメモリ・・でもSSDは64GB・・）だったので、彼に最後のご奉公を御願いする事にしました。

##まずは事前の準備・・・
環境は基本的にクラウド上に有るので、最初に情け容赦なく開発者モードに切り替えます。この方法は他の数多くの先人の皆様の、血と汗と涙のレポートがネットの数多く上がっていると思いますので、その方法を順番道理に行えば、禁断の開発者（デベロッパーズ）モードに到達出来ると思います。（開発者モードに入る為の事前作業や、モード変更以後の作業は自己責任でお願い致します）

ここでの、重要なポイントはモード切替後には、最初にCtr+Dで入る！という事なので、この呪文は絶対に忘れないようにしておいてください。（見慣れない画面で立ち上がってきますが、これは責任所在（以降は自己責任で・・）という話を明確化する為の踏み絵みたいなモノだと思います）

##さて仮想化を・・・・
次に切り替えで通常Chromebook利用と、今回導入するLinux+R環境を混在させる方法ですが・・・・最近のChromebookではLinux環境のサポートに対する垣根が非常に下がってきていると聞いていましたので、その方向から・・・もしかして・・・サクッと！と考えていたのでですが、無残にも今回持ち出してきたChromebookで実施するのは難しい。。という事が判明しました・・・
おいおい、このハードウエア仕様で御社ご謹製で・・・と正直少し心が折れかけたのは事実ですが、Rを習得する！という僅かな情熱の残り火と”きっと誰かが同じ様な事を・・”に望みを掛けて、想定キーワードを総動員して先人の経験談をネットで調べたところ、**crouton**なる仮想（？）環境が存在し、その環境にLinuxを立ち上げてRを構築すれば・・・という希望の灯りの存在に出会う事が出来ました。

##croutonとLinuxの導入
この環境の導入は、Chromebook界では非常に有名な方法だと聞いていますので、既に多くの諸先輩方のレポートがネットに上がっていると思います。ですので、今回は前述のハードウエアに対して、単純にどのコマンドをどの順番で入力して、当初目的のRが使える環境に到達したか？！のみにフォーカスした備忘録的な報告とさせて頂ければ幸いです。

####（０）croutonのダウンロード
開発者モードでChromebookに入ったら、（黄色の！マークが出た所で**Ctrl+d**）下記のリンクからcroutonのパッケージをダウンロードします。

https://goo.gl/fd3zc

標準でDownloadsフォルダに入ると思いますので、**Ctrl + Alt + t**でターミナルを開いてプロンプトで**shell**と入力してモードを変更します。（ここでエラーが出た場合は、正常に開発者モードに切り替わっていないので、再度そこから作業を行ってください。
あと、この段階でパスワードと暗号化のキー情報の設定が要求されると思いますので、適宜それらに対応しておいてください（これらの情報は、以降のLinux環境立ち上げの際に確認される情報になります）

####（１）Linux環境で何が選択できるか？の確認
ここは、実は今回の作業でも非常に重要なポイントでした。croutonで今何かOSとして選択できるのか？は、ある意味その後の全ての作業を左右する情報になりますので、まずは最初にその情報を確認する必要があります。

```shell
sudo sh ~/Downloads/crouton -r list
```

で、そのタイミングでサポートされているLinuxのコードネームが出てきますので、その中からサポート対象の物を選んでください。（このレポート作成時点ではubuntu系で**xenial**が有りましたので、それを導入する事にします）

実際の導入に関しては、諸先輩の経験を最大限に使わせて頂くという事で、幾つかのパターンを試したところ最終的にこの記述で綺麗に収まりました。

```shell
sudo sh -e ~/Downloads/crouton -r xenial -t xfce-desktop,keyboard,touch,audio,extension,chrome -e
```
参考URL：
https://qiita.com/toumasuxp/items/f7c10ab2b9405aa3170d

####(2)無事に導入出来た後の作業
導入作業は、結構長い時間が掛ると思いますので、暫くの間はひたすら設定作業を待ち続けるしかありません。
無事に導入が終わると、ログインID,パスワード等の設定があると思いますので、それらを粛々と処理して頂けば”最初の”環境を手に入れる事が出来ると思います。

此処まで来れば、あとはLinuxのデスクトップを立ち上げて、ターミナルウインドウから”よく見る”作業をこなしていくだけになります。

Chromebook側で先ほど立ち上げたターミナル経由で

```shell
sudo startxfce4
```
正常に導入されていれば、画面が変わってLinuxのデスクトップが出てくると思います。
そのデスクトップ上でターミナルウインドウを開き、お約束のLinux環境に関する更新作業を行います。

```shell
sudo apt update
sudo apt upgrade
```
・・・・さて、冷静に仮面を見ると・・・はい!この状況の場合、デスクトップは英語環境になっていますので、以下の手順で日本語環境を導入していきます。

```shell
sudo apt -y install language-pack-ja
sudo update-locale LANG=ja_JP.UTF8
```
この作業が終わると、日本語言語パックやロケール設定が日本になりますので、導入を進めているLinux環境を再起動します。
この際の留意点としては、一旦crouton環境を抜けてしまいますので、再度Chromebook側のターミナルから・・

```shell
sudo startxfce4
```
で起動するようにしてください。

```shell
sudo dpkg-reconfigure tzdata
sudo apt -y install manpages-ja manpages-ja-dev
```
この作業でタイムゾーン（順調に導入されている場合は、既に設定されているかと）や残りの日本語マニュアル環境が構築出来るかと思います。
![t1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/12ac96e0-f554-e3e4-65ab-645b2bae45fd.png)
無事に日本語化が出来たようですね。

##いよいよR環境の導入
今回crouton環境に導入したubuntuのバージョンに合わせたRを選択します。今回のLinuxがubuntuのxenialですので・・

**xenial：ubuntu16.04**

という情報がネット経由で出てきましたので、取り急ぎこのバージョンに適合できるRのパッケージを探します。場所はミラー情報が出ている

https://cran.r-project.org/

から、日本のサイトで選択して

https://cran.ism.ac.jp/bin/linux/ubuntu xenial/

を今回のダウンロード元にしました。

####まずは、お約束の作業から・・・
まず初めに、
**/etc/apt/sources.list**
ファイルに以下の1行を追加します。

```shell
deb https://cran.ism.ac.jp/bin/linux/ubuntu xenial/
```
お約束のgpg系の設定を行います。

```shell
gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
gpg -a --export E084DAB9 | sudo apt-key add -
```
必要な環境を導入します。

```shell
sudo apt-get update
sudo apt-get install r-base
```
無事に導入が終了すると、ターミナル上から**R**を入力するとRの基本エンジンが立ち上がってきます。
このままでも基本的な捜査は出来ると思いますが、今後の展開を鑑みて少し高度な事が出来る環境にしておきます。

```shell
sudo apt-get install r-base-dev
```

この操作は、既に前述の**r-base**の導入で必要な環境をインストール済みのメッセージが出て、何も処理が行われずに終了する可能性もありますが、念のため確認の意味も込めて作業を行います。
![T3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/129f8310-8ea9-7de6-6b42-a7aaa67bf7c9.png)
無事にRも動き出した様です。

##Rstudioの導入
基本的には、此処までのステップでRの検証環境が動き始めると思いますが、今回はその後の展開を想定して、Rstudioを導入しておく事にします。

####最初にgdebiの導入
インストールには、gdebiを使いますので、事前にこの環境を導入しておきます。

```shell
sudo apt-get install gdebi-core
```

Rstudioの最新情報を確認して、下記のコマンドを入力します。本レポート作成のタイミングでは、**rstudio-1.2.5033-amd64.deb**が最新版でしたので、その情報を使って必要なパッケージを取得します。


```shell
wget https://download1.rstudio.org/desktop/xenial/amd64/rstudio-1.2.5033-amd64.deb
```

無事にダウンロード出来たら**gdebi**コマンドでインストールします。

```shell
sudo gdebi -n rstudio-xenial-1.0.153-amd64.deb
```
無事にインストールされると、Rstudioも起動出来る様になります。
![t2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/cf804d46-b72c-f3ce-5ae5-323bc6b9e2f8.png)


##crouton上で環境導入に失敗した場合・・・
色々なパターンで環境構築を検証していた際に、何パターンかの失敗モジュールが溜まった状況に遭遇し、この環境を綺麗にする方法は・・・と色々調べたところ（特定のフォルダを強制的に消去するという方法も有るようですが・・）下記のコマンドで上手く回避出来ましたので、参考情報として紹介しておきます。

```shell
sudo delete-chroot -a
```

ポイントは、このコマンドの場合chrootで管理している全ての領域が削除されますので、実行に際しては十分考慮頂くようにお願い致します。（crouton自体が、使わない環境は根こそぎ消して”無かった事にする”という感じみたいですが・・・）


##今後の予定
以上の手順で、crouton経由でubuntu(xenial)が導入され、日本語環境でデスクトップが展開し、RとRstudioを無事に導入する事が出来ました。環境構成によっては、今回のレポート道理に行かないケースも有るかと思いますが、その場合は偉大なる先人の経験を検索して頂いて、適宜修正変更しながら対応するようにお願い致します。
ちなみに、今回構築した環境でのOS間行き来は・・**Ctrl+Alt+Shift　と通常F1,F2の場所にある矢印キー**で行えました。

[**MemSQLを使ってみようVol.10: 実践編3**](https://qiita.com/wadaken1961/items/5ed5ffce436b6ebbb1ce)に続く