WSL2上(Ubuntu 20.04LTS)でRails環境を構築しようとしたら躓いて転んだ


何をしようとしたのか?

Windows10 20H1が来たのでWSL2を用いてRails環境を整えようと思った。
Ubuntu 20.04LTSを入れて、あれこれ設定していたら想定外のところで躓いて転んだ。

何があったのか?

  • Rubyのインストールはできた
  • gemでRailsもインストールできた
  • MariaDBもインストールできた
  • 普通に起動させよう
$sudo systemctl start mysql
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to create bus connection: Host is down

なんかエラー出た。

なんで?

WSL2はsystemdがサポートされていないらしい(厳密には存在するらしいが無効化されている)。
仮に有効化させてもPID 1で起動できないので、事実上systemctlは使えない。

対策

WSL2でSystemdを使うハックを参照してみた。
その中でも一番楽そうなgenie コマンドを使ってみることに。
https://github.com/arkane-systems/genie/

実行

割と長めの前準備があるが、最終的には以下のコマンドを実行することになる。

sudo apt install systemd-genie

以下準備メモ

あれ?

実行してみるとわかるが、404エラーを返されてインストールに失敗する。
何故かと思ったらまだUbuntu 20.04LTS向けのパッケージが存在しないのである。
なんという……。

結論

現状DebianかUbuntu 18.04LTSを使おう。