scalewayの30分無料お試しARMサーバーでRを動かす

ARMのベアメタルサーバーを提供するscalewayが、クリックひとつで30分無料お試し!、という粋なサービスを始めました。30分を過ぎるとログインできなくなりますが、何回でも試せます。

しかもDockerがインストール済み。

Dockerといえば、RockerにはRを使う人のためのイメージが各種揃っています。が、ARM用のイメージではないので自分でDockerイメージをビルドする必要があります。ということで、RStudioを動かすことができるか、スクリプトをつくって試してみました。

結論から言うと失敗だったんですけど、、いちおう記録ということで残しておきます。

つくったスクリプト

r-baseはdebian:jessieをベースにしています。これを、Onlinelabs(Scalewayを運営している会社)が提供しているARMイメージに差し替えて、自分でビルドします。

gist.github.com

やったこと

まずは、下のサイトに行って「GET MY SERVER」というボタンをぽちっと押します。

http://instantcloud.io/

すると、画面が切り替わってコンソールが出現します。下の方にIPアドレス、ログイン名、パスワードが書かれています。このコンソールにログインしてもいいですし、手元からSSHしてもいいです。

で、上に貼ったgistのコマンドを実行します。

$ wget -O - https://gist.github.com/yutannihilation/4a00ab73d0864e30392f/raw/armhf-rocker.sh | sh

結果

実行すると、r-baseは無事ビルドできましたが、rstudioは↓のエラーで失敗しました。libssl0.9.8というパッケージにはARM用のがないみたいです。。たぶんこんな感じで、ちょこちょこARM用のパッケージがなくてこけることがありそうです。

...snip...
Processing triggers for ca-certificates (20141019) ...
Updating certificates in /etc/ssl/certs... 173 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
dpkg: error processing archive libssl0.9.8_0.9.8o-4squeeze14_amd64.deb (--instal            l):
 package architecture (amd64) does not match system (armhf)
Errors were encountered while processing:
 libssl0.9.8_0.9.8o-4squeeze14_amd64.deb

まあ、ビルドに成功したr-baseの方はふつうに動きます。みたらR 3.2.0がもう入ってました。はやい…。

ubuntu@instantcloud:~$ sudo docker run -i -t r-base /bin/bash
root@01405b04c392:/# R

R version 3.2.0 RC (2015-04-09 r68169) -- "Full of Ingredients"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: arm-unknown-linux-gnueabihf (32-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

>

今後ARMがもっとメジャーになれば、対応してるパッケージも増えて使いやすくなるのかもです。とりあえずメモ。