📑

WSLg(Windows11)時代のPHPStorm on WSL2のインストール方法

2021/04/23に公開

Windows Insider Previewでの記事なのでリリース時と異なる場合があります

------------------- ↓ 前書はここから ↓-------------------

こんな記事が
https://pc.watch.impress.co.jp/docs/news/1320368.html

キタ―――(゚∀゚)―――― !!

以前から発表があったように
WSL上でLinux GUI動くようになった。
執筆時(令和3年4月22日現在)ではInsider Previewのdevチャンネルのみだが、
リリースは時間の問題よね。

さて、これも以前から言ってるが、
Linux上でGUIを動かすということがわかった時点で、
PHPStormなどのGUIアプリをLinux上に載せて使うことは確実になった。
(VSCodeはまだわからない)
そこでLinux上のインストールの仕方をおさらいしておこう。

以前は個別のツールのインストール方法を記載していたが、
今はJetbrains Toolbox Appというインストーラー兼ランチャーがあるので、
そちらを使うようにする。

なお、WSLgのアップデート手順は後書に記述

ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪

------------------- ↓ 本題はここから ↓-------------------

前提

Windowsのバージョンを確認

version 21362+ になっていること

Jetbrains Toolbox Appのインストール

Toolbox AppのLinux版をインストールする。
とはいえ、ただのバイナリファイルなので、
解凍して適当な場所にコピーするだけ

リンクの取得

Jetbrains Toolbox Appのページに移動し
Linux版を選択

直接リンクにリンク先がでるのでURLをコピーしておく

Ubuntu上でwgetで取得し展開しておく

$ wget 'https://download.jetbrains.com/toolbox/jetbrains-toolbox-1.20.8352.tar.gz?_ga=2.18798398.665439295.1619095954-170303220.1583936480'
$ tar xfz jetbrains-toolbox-1.xx.xxxx.tar.gz

/usr/local/binにコピー

$ sudo cp jetbrains-toolbox-1.xx.xxxx/jetbrains-toolbox /usr/local/bin

Jetbrains Toolbox Appの起動

$ jetbrains-toolbox

available欄のinstallから好きなツールのインストールを実行
installed欄より起動する

------------------- ↓ 後書はここから ↓-------------------

fuseが必要といわれる場合

AppImagesとやらがなんかエラーを出す

$ jetbrains-toolbox
dlopen(): error loading libfuse.so.2

AppImages require FUSE to run.
You might still be able to extract the contents of this AppImage
if you run it with the --appimage-extract option.
See https://github.com/AppImage/AppImageKit/wiki/FUSE
for more information

よくわからんがとりあえず調べてみると
FUSE · AppImage/AppImageKit Wiki

AppImages require FUSE to run. Filesystem in Userspace (FUSE) is a system that lets non-root users mount filesystems.

とある。
インストール方法も書いてあったので、とりあえずやってみる。

sudo apt install fuse
sudo modprobe fuse
sudo groupadd fuse

user="$(whoami)"
sudo usermod -a -G fuse $user

Error: Can't open display: と言うエラーが出る場合

細かい理由はわからないが、
WSLgで一度動かしても、
また、「Error: Can't open display: 」というエラーが出ることがあるようだ。
(筆者はWindows11にした後で発生)

アップデートで何かしら狂ったんだと思うので、
一度リセットした方がいい。
以下の設定をして一度GUI系をリセットする
Windows上のホームディレクトリ C:\Users\<ユーザー名>\.wslconfig に以下の記述を追加してwslを再起動する

~\.wslconfig
[wsl2]
guiApplications=false

いったん再起動

wsl --shutdown
wsl -d [ディストリビューション名]

WSLgが使えなくなってると思うので、
再度有効にする。

~\.wslconfig
[wsl2]
guiApplications=true

もう一度再起動

wsl --shutdown
wsl -d [ディストリビューション名]

参考:
WSLg System Distro
Configure global options with .wslconfig

WSL2アップデート

ここでは既にLinux上でPHPStormなどを運用している人向けに
アップデート手順を記載しておく。

DISPLAY設定解除, X410アンインストール

以前にx11アプリを使えるようにしてる場合は環境変数DISPLAYを削除しておく
また、X410やVCXSRVなどのWindows用Xサーバーもアンインストールしておく

Linuxディストリビューションのバージョンアップ

Pengwin Linuxにアップデート方法が載っていたので、
これに沿ってやってみる

1. Be sure that Pengwin is already running in WSL 2. If not,
first switch it with wsl --set-version WLinux 2. Then run wsl --shutdown

2. Upgrade WSL running wsl --update from an elevated command prompt or PowerShell.
And restart WSL with wsl --shutdown.

GUI app support has arrived for the Windows Subsystem for Linux on the latest Windows Insiders Preview build 21362+ and Pengwin supports it out of the box

前提としてWSLのバージョンが2になっていること。
なっていない場合は

> wsl --set-version [dist] 2

と打てばバージョンアップする
その後シャットダウンしておく

> wsl --shutdown

gsudoのインストール

管理者権限が必要なのでgsudoを使う。

> winget install gsudo

管理者権限で開く方法を知ってる方はスルーで

WSL2のアップデート

以下のコマンドでバージョンアップできる

> gsudo wsl --update
更新をチェック中...
更新をダウンロード中...
更新をインストール中...
この変更は、次回の WSL 再起動時に有効になります。強制的に再起動するには、'wsl --shutdown' を実行してください。
カーネル バージョン: 5.10.16

X11アプリインストール

アプリは何でも良いが
とりあえず目には目を

> wsl
$ sudo apt install x11-apps
$ xeyes

<●><●>

新品のWindows11で使用するとエラーになる

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370114
Error: 0x80370114 ???????????????????????????????????

新しいWindows11にてWSLを使用すると上記のエラー。
Linuxを選ぶ前にどうやら下記のコマンドを実行する必要があるらしい。

wsl --install
  • 必要なオプション コンポーネントの有効化
  • 最新 Linux カーネルのダウンロード
  • WSL 2 の既定としての設定
  • Linux ディストリビューションのインストールが実行

その後、Linuxを起動すればエラーは出なくなるはず

ubuntu

Discussion