r-wakalangでそういう話が上がってたのでちょっと試してみたときのメモです。
Rをインストール
R公式サイトに書かれている通りにインストールします。
ドキュメント:UBUNTU PACKAGES FOR R
echo "deb https://cran.rstudio.com/linux/bin/ubuntu trusty/" sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 sudo apt update sudo apt install r-base
RStudio Serverをインストール
RStudio公式サイトに書かれている通りにインストールします。
sudo apt-get install gdebi-core wget https://download2.rstudio.org/rstudio-server-1.0.44-amd64.deb sudo gdebi rstudio-server-1.0.44-amd64.deb
すると...
$ sudo gdebi rstudio-server-1.0.44-amd64.deb Reading package lists... Done Building dependency tree Reading state information... Done Building data structures... Done Building data structures... Done RStudio Server RStudio is a set of integrated tools designed to help you be more productive with R. It includes a console, syntax-highlighting editor that supports direct code execution, as well as tools for plotting, history, and workspace management. ソフトウェアパッケージをインストールしますか? [y/N]:y 以前に未選択のパッケージ rstudio-server を選択しています。 (データベースを読み込んでいます ... 現在 35890 個のファイルとディレクトリがインストールされています。) rstudio-server-1.0.44-amd64.deb を展開する準備をしています ... rstudio-server (1.0.44) を展開しています... rstudio-server (1.0.44) を設定しています ... useradd: user 'rstudio-server' already exists groupadd: group 'rstudio-server' already exists rsession: no process found initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: 接続を拒否されました initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: 接続を拒否されました
なにか怪しげなエラーが出ています。たしかにUpstartは動かないですよねー。でもまあインストールはできてるっぽいです。
~$ dpkg -l rstudio-server 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持 | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留 |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常) ||/ 名前 バージョン アーキテクチャ 説明 +++-======================================================-================================-================================-================================================================================================================= ii rstudio-server 1.0.44 amd64 RStudio Server
Upstart on Windows
と思って調べてみると、known issueだ、といってるissueが出てきます。
ただこれは、インストール時に/usr/sbin/policy-rc.d
を実行するやつ用のワークアラウンドみたいです。daemon化するのにUpstartを頼ってるやつには無理そうな気が...。
Upstartの設定ファイルを覗いてみる
なんとかならないのかなーと思ってとりあえず設定ファイルを覗いてみます。
$ cat /etc/init/rstudio-server.conf # rserver - RStudio main gateway process # # # upstart docs: http://upstart.ubuntu.com/getting-started.html # http://manpages.ubuntu.com/manpages/karmic/man5/init.5.html # # (note that embedding a script and pre-start and post-start actions are supported) # start on runlevel [2345] stop on runlevel [!2345] expect fork respawn pre-start script # Make sure our AppArmor profile is loaded on boot # (see: https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/577445) /usr/lib/rstudio-server/extras/apparmor/apparmor-profile-load rstudio-server end script # run the server exec /usr/lib/rstudio-server/bin/rserver
expect fork
とある。この意味は公式ドキュメントだとこの辺。まあ無視してよさそう。
pre-start script
は、AppArmorの設定なのでこれもまあ今回は気にしないことにしましょう。(AppArmorが動くのか動かないのかは知らない)
exec
が一番コアの部分ですが、とりあえずこれを実行することにしましょう。setuid
とかはないのでrootで実行すればよさそうです(注:RStudio Serverの中でforkするときにrstudio-server
ユーザになるっぽいです)。
/usr/lib/rstudio-server/bin/rserver
すると、一瞬でコマンドが返ってきます。成功か失敗かよくわかりません。pgrep
してみましょう。
$ pgrep -lfa rserver 10735 /usr/lib/rstudio-server/bin/rserver
おお、成功してるっぽい。と思って http://localhost:8787/ にアクセスすると無事に RStudio Server が見えました。
めでたしめでたし。
自動起動するには?
Upstartは使えないので、OSを起動したら自動でRStudio Serverが立ち上がるようにするには、Windowsの側の仕組みでなんとかする必要があります。たぶんこんな感じでできるはず。試す気力はわかなかった。
ただし、もとのBashのセッションが切れてしまうとRのセッションも切れてしまうみたいです。daemon化をやめるには、--server-daemonize 0
を指定します(デフォルトは1
)。あと、--server-app-armor-enabled 0
も指定しないとエラーになるようです(これはなぜかよくわからなかった...)。