見出し画像

WSL2で統計解析環境(その1) WSL2とRstudio Serverをインストール

このシリーズでやりたいこと

Windows 10にWindows subsystem for linux 2が実装され,まともに利用できそうな環境が整ってきた.私は会社でデータ解析を仕事にしているので,家でも統計ソフトを使いたいときが多々ある.実は,OSがUbuntuのホームサーバーを運用しているのだが,そこで動作する統計ソフトがWindowsのバックグランドで動作すれば本当にありがたい.これがモチベーションである.

システム構成

簡易サーバーとなるPCは無線LANに繋がっているOSがWindows 10 ProfessionalのPCである.利用する際には,同じ無線LANルーターに繋がった別のPCからブラウザで接続して利用することもできるし,この簡易サーバーのアカウントでログインしてブラウザから使うこともできる.

Windows 10のアップデート

まずは,Windowsのコンピュータ名はUbuntuにも引き継がれるので,再考してわかりやすい名前にする.例えば"statServer"とする.

Windows 10をバージョン2004以上にアップデートする.Windows 更新アシスタントを入手するへアクセスする.今すぐアップデート をクリックしてダウンロードする.

画像1

「Windows10 更新アシスタント」を実行する.

Windows subsystem for Linux 2をインストール.

WSL 2 をインストールする前に、"仮想マシン プラットフォーム" オプション機能を有効にする必要がある。管理者として PowerShell を開き、以下を実行する。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

実行したらここで再起動しよう.次に,カーネルコンポーネントの更新をする. https://aka.ms/wsl2kernelに飛ぶ.「x64 マシン用の最新の WSL2 Linux カーネル更新プログラム パッケージをダウンロードしてください」をクリックし,実行する.

PowerShell で次のコマンドを実行して、新しい Linux ディストリビューションをインストールするときに WSL 2 を既定のバージョンとして設定する。

wsl --set-default-version 2   

Microsoft Store を開き,ここではUbuntu 18.04を選択した.試してはないが,最新のUbuntu 20.04でも問題ないだろう.インストールして起動する.起動するとUNIXユーザー名を聞かれるので,statuserとでもする(すべて小文字).パスワードも入力する.

PowerShellに戻って、wslと入力して起動する.デフォルトのLimuxをUbuntu 18.04に指定する.

wslconfig /setdefault Ubuntu-18.04

さらに、

sudo apt update
sudo apt upgrade

を入力しておこう。

Rstudio Server をインストール

このページを参照して,Rをインストールして,Rstudio Server(無料版)をインストールする.Ubuntuのターミナルから、

sudo apt install r-base
sudo apt install gdebi-core
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.3.1093-amd64.deb
sudo gdebi rstudio-server-1.3.1093-amd64.deb

特に難しいことはない.Rstudio Serverのバージョンが上がると,ファイル名も変わるので注意しよう.

あとは

sudo /etc/init.d/rstudio-server start

を入力すれば,Rstudio Serverが起動される.

SSHのインストールとポートフォワーディング

他のPCからアクセスできるよう,SSHが使えるようにする.

sudo apt install openssh-server
sudo ssh-keygen -A

/etc/ssh/sshd_configをnanoなどのエディタで開き,以下の項目のコメントアウトを外して有効にする.

PasswordAuthentication yes

SSHが使う22番ポートと,Rstudio Serverが使う8787番ポートのポートフォワーディングをする.まずは,ifconfigとavahiが使えるようインストールする.

sudo apt install net-tools avahi-daemon

ポートフォワーディングは,再起動のたびに設定が必要なので,バッチファイルにした./opt/bin/port_forwarding.shというファイルを作り編集する.さらに実行権限を与えておく.

#!/bin/bash
IP=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}')
netsh.exe interface portproxy delete v4tov4 listenport=22
netsh.exe interface portproxy add    v4tov4 listenport=22 connectaddress=$IP
netsh.exe interface portproxy delete v4tov4 listenport=8787
netsh.exe interface portproxy add    v4tov4 listenport=8787 connectaddress=$IP

ファイヤーウォールの設定

SSHで使う22番とRstudioが使う8787番のポート開放をWindows PCで行う.他のPCからアクセスする場合,この設定が必要になるので忘れずにやろう.具体的な方法は,検索して調べてほしい.

自動起動の設定をする

Windows上で¥C:¥Users¥[ユーザー名]¥start_ssh_RstudioServer.batを作成し,

wsl -d Ubuntu-18.04 --exec bash /opt/bin/port_forwarding.sh
wsl -d Ubuntu-18.04 -u root -- service ssh restart
wsl -d Ubuntu-18.04 -u root -- /etc/init.d/rstudio-server restart

と記述する.さらにタスクスケジューラで,システム起動時に自動起動するように設定する.このとき,「最上位の特権で実行する」をチェックしておこう.

使い方

WSLをインストールしたPCであれば,Windows上のブラウザから"http://localhost:8087"を開けば,Rstudio Serverが利用できる.別のPCからは,"http://<hostname>.local:8787"を開く.通常はWSLがインストールされたデスクトップPCで作業をするが,たまにノートPCでも使いたいというような場合,ノートPCのストレージ容量を圧迫せずにRstudioが利用できる.なお,Rstudio Serverで開発したプログラム等は,Linux上で動作するDropboxや,正式には対応していないがOneDriveなどのクラウドストレージサービスを使うと使い勝手が良くなる.

まとめ

ご覧のとおり,いまのところWSL2の導入にはちょっと手間がかかる.しかしRstudio Serverが使えるなど,それなりに苦労した見返りはあると思う.

参考にしたウエブサイト


この記事が気に入ったらサポートをしてみませんか?