RStudio Serverがあると何かと便利ですので,Windows 11(バージョン 21H2)にWSLを組み込み,Ubuntu 22.04をインストールして、RStudio Serverを動かします。まず,WSLを組み込むためにWindowsの設定を変更します。
Windowsの設定を開き,アプリのオプション機能を選択します。さらに,Windowsのその他の機能をクリックし,「Windowsの機能の有効化または無効化」を開きます。「Linux 用 Windows サブシステム」と「仮想マシン プラットフォーム」にチェックを入れます。チェック後,パネルを閉じて Windows を再起動します。
WSLコマンドを使ってWSLを更新できます。Windowsのスタートを右クリックし,Windowsターミナル(管理者)を起動してアップデートします。
> wsl --update
WSLにはバージョン1と2があります。WSL 1の状態でUbuntu 22.04をインストールすると不都合が生じるようなので,念のため,WSLコマンドを使ってバージョンの初期設定を2にしておきます。Windowsのスタートを右クリックし,Windowsターミナルを起動し,WSLコマンドを入力します。
> wsl --set-default-version 2
Microsoft StoreでUbuntuを検索すると,いくつかの異なるバージョンが見つかります。ここでは,Ubuntu 22.04をインストールします。
Ubuntu 22.04のインストールを始めると,しばらくして,「We are almost done.」が表示され,続いて,文字化けした画面(Select your language)が表示されますが,japaneseが選択されているようなので,右下の色が濃いボタンをクリックします。
Profile setup画面が表示されますので,ユーザ名とパスワードを入力します。Advanced Setup画面では何も変更せずに右下のSetupをクリックして続行します。しばらくするとSetup complete画面が表示されますので,Finishをクリックします。Ubuntu22.04が起動し,自動的にログインが完了します。
ここで,Ubuntu 22.04の更新作業を行います。
$ sudo apt update
$ sudo apt upgarade
インストールしたUbuntu 22.04は,Windowsのスタートからすべてのアプリを開いて,「Ubuntu 22.04 LTS」をクリックすれば起動します。あるいは,Windowsターミナルを起動し,メニュからUbuntu 22.04を選択すれば起動します。
Ubuntu側のファイルはWindowsから閲覧・操作することが可能です。エクスプローラーの左ペイン(ナビゲーションウィンドウ)にLinuxを選択します。あるいは,Windowsのスタートをクリックし,ファイルを指定して実行を選択し,「\\wsl$」を入力します。
WSLと一緒にWindows Subsystem for Linux WSLg Previewがインストールされています。WSL 2であれば,WSLg経由でGUIを利用できます。MicrosoftのページにはGUIを利用するいくつかのアプリのインストール方法が記載されています。
Ubuntuにはviとnanoがインストールされています。
Visual Studio Codeがあればプログラミングには便利ですので,Microsoftのページを参考にしてインストールします。WindowsにインストールしたVisual Studio CodeをUbuntuから呼び出すことができるようになります。
.bash_aliasesという名前のファイルを作成しaliasを記述しておくと,ログインとともに自動的にaliasが設定されます。エディタ―を使ってaliasの設定ファイル(.bash_aliases)を作成します。
$ vi .bash_aliases
ファイルを誤って削除しないようにaliasを設定します。
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ln='ln -i'
lsについてもaliasを設定して,見やすいようにすると便利でしょう。たとえば,
alias ll='ls -lh --color=auto'
alias la='ls -AF --color=auto'
alias ls='ls -F'
WSLのホームからWindowsのフォルダーへシンボリックリンクを作成し,作業フォルダーにすると便利です。ただし,Windowsのフォルダーではフォルダー名やファイル名の大文字・小文字を区別しません。Cドライブへのパスは/mnt/cです。たとえば,
$ ln -s /mnt/c/Users/ユーザーフォルダへのパス 新リンク名
WindowsとWSLでは標準の文字コードが異なりますので,文字コードの変換が必要になる場合があります。
$ sudo apt install nkf lv
nkfは文字コードを変更します。また行末のコードも変換してくれます。lv は less のシフトJIS版です。
たとえば,フォルダー内のRファイルをすべてUTF8に対応させるには,以下のようなコマンドをタイプして実行します。
$ find . -name '*.R' | xargs nkf --overwrite -w -Lu
ちなみに,Macを使って作成されたZipファイルをWindowsで展開するとファイル名が文字化けすることがありますが,WSL のunzipを使えば文字化けせずに展開できるようです。
The Comprehensive R Arichive Networkのページを参考にR 4.2をインストールします。
$ wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
$ sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
$ sudo apt install r-base
とりあえず,sudo を使って R を起動し,
$ sudo R
システム・ライブラリーのパッケージをアップデートします。
> update.packages()
RStudio Server をインストールではRStudio Serverのページを参考にします。Debian/Ubuntu のページを開き,Ubuntu 22向けの指示通りにインストールします。
$ sudo apt install gdebi-core
$ wget https://download2.rstudio.org/server/jammy/amd64/rstudio-server-2022.07.1-554-amd64.deb
$ sudo gdebi rstudio-server-2022.07.1-554-amd64.deb
Windows からWebブラウザーを起動してhttp://localhost:8787/にアクセスすれば,RStudioを利用できます。Ubuntuをログオフしても,RStudio Serverを終了していなければ RStudioを使うことができます。
RStudio Serverを終了するには,
$ sudo rstudio-server stop
RStudio Serverを起動するには,
$ sudo rstudio-server start
aliasを設定しておくと便利でしょう。たとえば,
$ alias rserver='sudo rstudio-server'
Windowsターミナルから呼び出すことも可能です。
> ubuntu2204 run sudo rstudio-server start
> start microsoft-edge:http://localhost:8787
RStudio ServerをWSLからアンインストールするには,
$ sudo apt remove rstudio-server
コピー&ペーストを使ってデータのやり取りができると便利なのですが,WSL 2だとうまくいきません。コピーしたデータが保存されているバファーを切り替える必要があるようです。まず,Ubuntuにxclipをインストールします。
$ sudo apt install xclip
バファー間でコピーを行った後にread.table()を呼び出すRの関数(readtable_clipboard())を定義します。
> readtable_clipboard <- function(...) {system("xclip -sel c -o|xclip"); read.table("clipboard", ...)}
read.table("clipboard")の代わりにreadtable_clipboard()を使います。たとえば,
> dt <- readtable_clipboard(header=T)
WSL 2の場合,WSLに割り当てられるIPアドレスがパソコン本体のIPアドレスと異なりますので,他のパソコンからRStudio にアクセスするためにはポートフォワーディングの設定が必要になります。
WSL 2のIPアドレスを知るには,
$ hostname -I
Windowsターミナルを使ってUbuntu 22.04に割り当てられたIPアドレスを知るには,
> ubuntu2204 run hostname -I
Windows側のIPアドレスを知るにはWindowsターミナルで,
> ipconfig
IPアドレスはIPv4アドレスの部分に表示されます。
ポートフォワーディングは,Windowsターミナルを管理者権限で起動して設定します。WindowsのIPアドレスが111.222.33.44,WSL 2のIPアドレスが123.45.67.8とすると,
> netsh interface portproxy add v4tov4 listenaddress=111.222.33.44 listenport=8787 connectaddress=123.45.67.8 connectport=8787
他のパソコンからhttp://111.222.33.44:8787/とすればRStudioにアクセスできるようになりました。アクセスできるパソコンの範囲はネットワークの構成に依存します。
ポートフォワーディングを削除するには,Windowsターミナル(管理者)で,
> netsh interface portproxy delete v4tov4 listenaddress=111.222.33.44 listenport=8787
ポートフォワーディングの設定を表示させるには,Windowsターミナルで,
> netsh interface portproxy show all
Rを使ったデータ処理で利用されるtidyverseをRにインストールしようとすると,いくつかのエラーが表示され失敗します。そこで,必要とされるライブラリをUbuntuにインストールします。
$ sudo apt install libcurl4-openssl-dev
$ sudo apt install libssl-dev
$ sudo apt install libxml2-dev
これでインストールできるようになりました。
> install.packages("tidyverse")
Bayes推定を行うRのパッケージをインストールしてみましょう。まず,RStanをインストールします。
> install.packages("rstan")
次に,Stanのページを参考に,CmdStanRをインストールします。
> install.packages("cmdstanr", repos = c("https://mc-stan.org/r-packages/", getOption("repos")))
> library(cmdstanr)
> install_cmdstan()
cmdstanのインストールが終了すると,以下のようなメッセージが表示されます。
* Finished installing CmdStan to /home/hoshino/.cmdstan/cmdstan-2.30.1
CmdStan path set to: /home/hoshino/.cmdstan/cmdstan-2.30.1
ホーム・ディレクトリの下に.cmdstanが作成され,その中にcmdstanがインストールされました。install_cmdstan()を実行することで,新しいcmdstanがインストールされます。
RStudioを使ってPythonのソースコードを編集・実行できます。まず,reticulateパッケージを入れます。
> install.packages("reticulate")
次に,RStudioのメニューからToolsを選択し,Global Options...クリックします。Pythonから,Python interpreterを選択します。たとえば,/usr/bin/python3.10を選択し,Applyをクリックします。RStudioの再起動後,Python3のソースコードをRStudioで実行できるようになります。
Python3のパッケージをインストールするために,pip(別名はpip3)をインストールし,さらにpipを更新しましょう。
$ sudo apt install python3-pip
$ pip3 install -U pip
ここでUbuntuを一度ログオフし,再びログオンすると,$PATHの先頭に .local/binへのパスが付け加わっています。.local/binには更新されたpipがあります。
$ echo $PATH
次に,Python3のパッケージを更新するためのパッケージ(pip-review)をインストールし,パッケージを一括更新します。
$ pip3 install pip-review
$ pip-review --auto
すると,いくつかのエラーが表示されますので,必要なライブラリをUbuntuにインストールします。その後,再び,pip-review --autoを実行すると,無事にPython3のパッケージが更新されます。
$ sudo apt install libcairo2-dev pkg-config python3-dev
$ sudo apt install libgirepository1.0-dev
$ pip-review --auto
ついでに,分析でよく使われるパッケージをインストールしておきましょう。
$ pip3 install pandas
$ pip3 install matplotlib
RStudioを使ってPythonの編集作業ができるようになりましたが,Jupyter Labがあれば大変便利です。Jupyter Labはnode.jsを使うようですので,
$ sudo apt install nodejs
$ pip3 install jupyterlab
パソコンのブラウザーを使ってJupyter Labを使うためにはオプション(--no-browser)を指定して起動します。
$ jupyter lab --no-browser
すると,メッセージとともにトークンが表示されますので,トークン部分をコピー(選択して右クリック)しておきます。
パソコンのブラウザーを使ってhttp://localhost:8888/にアクセスすると,ログイン画面が表示されます。そこで,トークンと新規パスワードを入力し,Log in and set new passwordをクリックします。次回からは設定したパスワードを使ったログインが可能になります。
Jupyter Labの各種設定を行うための設定ファイルを作成しておくと便利です。
$ jupyter lab --generate-config
.jupyterフォルダ内にjupyter_lab_config.pyが作成されますので,このファイルをエディターを使って編集すれば設定を変更できます。たとえば,--no-browserと同じ意味の設定は,
c.LabServerApp.open_browser = False
他のパソコンからのアクセスを可能にするには,
c.ServerApp.ip = '0.0.0.0'
2022年5月23日