👋

WSLでIntelliJ IDEAのRemote Developmentを試す

2021/10/20に公開

EAP版IDEAでphpリモート開発ができるのか

結論から言うとメインで使うのはまだまだ先になりそうだ。


WSL上でJetbrains IDEAを使おうとすると、
Windows上にインストールして、
プラグイン経由でWSL上のインタプリタやツールチェインにアクセスする形になるのだが、
ファイル自体はWindows上にあるので、
どうしても開発がやりにくい状態になる。
(改行コードとか、改行コードとか、改行コードとか、あとファイルのパスとか)

ご存じの通りWSLの弱点にLinux <=> WindowsのIO問題がある。
LinuxからWindows側のディレクトリにアクセスすると、
速度が非常に遅くなる。

VSCodeではそのあたりを良い感じにするRemote Develop機能があって、
WSL上にVSCodeのエージェントを設置して、
それを経由でWindows側で開発できる。
これならばファイルはLinux上にありながらWindows上で開発できる。
Jetbrainsでもできないだろうか?

そんな折以下の情報が入ってきた。

https://blog.jetbrains.com/idea/2021/10/intellij-idea-2021-3-eap-4/

SSH越しにリモート開発機能を実装できるようにするとのこと。

(゚-゚) ならWSLでもいけんじゃね?

ってことでWSL上のRustでリモート開発できるか試してみよう。
現状、JetbrainsIDEAとGoLandが対象のようだが、
プラグイン入れればなんとかなるやろ。

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

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

事前準備

WSLを使えるようにしておく
今回はまっさらなUbuntuを用意
パスワード設定と最新版への更新は済ませておく。
あと、IPを取得するためにnet-toolsをインストールしてifconfigを使えるようにしておく

wsl --install -d ubuntu
sudo apt update && sudo apt upgrade -y
sudo apt install net-tools

SSHDを起動する

リモート接続は現状SSH経由のみなので、
WSL側にSSHを設定しておく。
ubuntuはデフォルトでopenssh-serverがインストールされているのでそちらを利用。

まずはパスワードログインを有効にする。

sudo nano /etc/ssh/sshd_config
/etc/ssh/sshd_config
- #Port 22
- #ListenAddress 0.0.0.0
- PasswordAuthentication no
+ Port 2222
+ ListenAddress 0.0.0.0
+ PasswordAuthentication yes

続いてSSHキーを作成

sudo ssh-keygen -A
 ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519

起動

sudo service ssh start
 * Starting OpenBSD Secure Shell server sshd

これでWindows側から localhost:2222で接続できるはず。

JetBrains Gatewayをインストール

以下よりJetBrains GatewayのWindows版をインストール

https://www.jetbrains.com/help/idea/2021.3/remote-development-starting-page.html

ちょっとわかりにくいが以下の箇所だ。

インストールして起動すると以下の画面になるので、
「Connect via SSH」を選択

「⚙」よりSSHのサーバー設定をすると以下のようになるので、
「Check Connection and Continue」を押下

IDE versionで「IntelliJ IDEA」を選択し、
Linux上の適当なディレクトリ(予め作成しておく)を選択、
「Download and Start IDE」を押下

IDEのダウンロードとインストールが始まり、
完了するとIDEが起動する。

(・∀・) やったか!?

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

プラグインがインストールできない

これは時間の問題だと思うが、
現状プラグインがインストールできなかった。
PHPは一見インストールできそうさが再起動ボタンが押せない。
Rustはインストールすらできず。

マシンパワーがかなりいる

エージェント側にかなりの高負荷を要する状態になっていて、
動作も反応も遅い。
今回はWSLでやったとはいえ、
仕事で使うには時期尚早なのは間違いない。

まだまだ使い物にはならない状態だった。
VSCodeのレベルには程遠い。
これからの開発に期待したい。
今後もアップデートには注視していこう

Discussion