p4vaspをWSLにインストールする方法

#イントロ
お疲れさまです。橋本です。

第一原理計算パッケージVASPの結果を解析するオフィシャルなソフトは「Model A」と「p4vasp」の2種類あります。

「Model A」はvasp購入のオプション？のようで、シェアウェアとなっております。「p4vasp」は無料で公開されており、ソースコードも公開されているので結果解析の仕組みを見ることもできます。

しかしながら有料の「Model A」があるのでバージョンアップは滞っており、依存するパッケージが自動で入手しづらい現状になっております。そもそも、使える機能が少ないため、p4vaspを使用せずにVASPの出力ファイルを見た方が都合が良いと思います。そんあ状況であえて「p4vasp」を使用するメリットがあるとすればその手頃さです。

本記事はそんな手頃さを落とさないよう、WSLを介し、Windowsにインストールする方法を紹介します。

#WSLのインストール
コントロールパネル→windows機能の有効化から「仮想マシンプラットフォーム」,「Linux用Windowsサブシステム」(「Windows Subsystem for Linux」)をインストールします.

wsl2へバージョンを変更します.
管理者権限のコマンドプロンプトで```wsl --set-default-version 2```を打ち込み, デフォルトを設定します.
(コマンドプロンプトさんから、あるリンクに赴いてインストールせよと言われたらそのとおりにします。)

設定→更新とセキュリティ→Windows Update→詳細オプション→Windwwsの更新時に他のMicrosoft製品の更新を受け取るを有効にします。
更新プログラムを確認し、オプションの更新プログラムがないか確認します。

「Ubuntu-20.04 LTS」をストアからインストールします. また,エクスプローラーのパスに```\\wsl$```を入れるとwslのファイルに飛ぶ事ができます.

インストールが完了しらた起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/d88375ef-33b2-83a1-a1ff-645d13328d37.png)
インストールのように任意のユーザー名とパスワードが求められます。入力ができたらインストールは完了です。

#p4vaspのインストール
まずはパッケージの更新から

```
sudo apt-get update && upgrade
```
を順番に実行します。

ビルドツールのインストール

```
sudo apt-get install make build-essential g++ gfortran
```

python2.7をインストールします。

```
sudo apt-get install python2.7
```
そしてpythonとCの連携を導入します。

```
sudo apt-get install python2-dev
```
また、ここで「いろいろなパッケージが低いバージョンを要求していますよ」的なメッセージが表示されたら、エラーに従い

```
sudo apt --fix-broken install
```
を実行します。

GUIを表示するx11をインストールします

```
sudo apt install x11-apps x11-utils x11-xserver-utils dbus-x11
```

p4vaspのウィンドウを動かすウィジェットをインストールします。
「http://archive.ubuntu.com/ubuntu/pool/universe/p/pygtk/ 」から「python-glade2_2.24.0-5.1ubuntu2_amd64.deb」と「python-gtk2_2.24.0-5.1ubuntu2_amd64.deb」をダウンロードします。※バージョンは変わりゆくものなので留意ください。

ダウンロードしたら、エクスプローラーのパスに```\\wsl$```を入れ、「\\wsl$\Ubuntu-20.04\home\ユーザー名」の中にダウンロードしたファイルをコピーします。
wslで以下のコマンドを順番に実行し、ウィジェットをインストールします。

```
sudo dpkg -i python-gtk2_2.24.0-5.1ubuntu2_amd64.deb
sudo dpkg -i python-glade2_2.24.0-5.1ubuntu2_amd64.deb
```
ここでパッケージを要求されたら素直に従いましょう。私のときはglade2をインストール時に「sudo apt-get install libglade2-0」を要求されました。

p4vの要求する細々したものをインストールします。
```
sudo apt-get install libxft-dev
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
```

p4vaspのインストールに入ります。公式「http://www.p4vasp.at/#/download 」からダウンロードし、エクスプローラーで「\\wsl$\Ubuntu-20.04\home\ユーザー名」にコピーします。
コピーできたら解凍し、ディレクトリに入ります。

```
tar -xvzf p4vasp-0.3.30.tgz
cd p4vasp-0.3.30
```
まだ要求するパッケージがあるそうなので、インストールします。

```
bash install/install-ubuntu-dependencies.sh
```
コマンドの最後が「E: Unable to locate package python-epydoc」というエラーで終わりますが放置で問題ありません。

最後にインストールして完了です。

```
bash install.sh
```

#起動の設定
GUIを使用するので「x-window」を使用するわけですが、インストール等が手間ですので、簡単なソフトを使用します。(そのうち組み込まれるそうです。)

使用ソフトはMobaXTerm「https://mobaxterm.mobatek.net/ 」です。ダウンロードし、windows上で解凍して使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/91613ae8-bc57-4f87-7352-af482e742d1b.png)
解凍すればすでに「WSL-Ubuntu」があるはずなので起動します。
起動すればIPアドレスとポート番号が表示されていると思います。それを「\\wsl$\Ubuntu-20.04\home\ユーザー名\.bashrc」の末尾に```export DISPLAY=IPアドレス:ポート```と追記します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/fac211e8-1e46-bda0-3dc4-f4010b0ff81a.png)
さらに、MobaXtermのSettingsアイコンをクリックし、X11のタブへ。そして「X11 remote access」を「full」に選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/3ccabe92-461d-5a0a-f3ad-55876a4295f3.png)

#p4vaspの起動
MobaXtermの「WSL-Ubuntu」を選択し、```p4v```のコマンドで起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/bf09c93a-c70e-ace8-9d45-83255f93f20b.png)
「\\wsl$\Ubuntu-20.04\home\ユーザー名\」にVASPの出力ファイルをコピーすればDOS等を手頃に書く事ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/f8321fac-3864-24fe-ce61-a610f55d1ecb.png)