【Ruby/Win】Windows上のAtomからWSL2上のrubocopを利用する

2020年8月19日

2020/08/19 追記

こちらの記事が割と検索に引っかかってみてくれているようなので追記しておきます。
最近関連した記事を追加したので、よろしければこちらもどうぞ。
【Ruby/Win】Windows上のAtomからWSL2上のrubocopを利用する 2020年版

本文

こんにちは、しきゆらです。
今回は、Windows上でRubyの開発環境を整える方法をメモしておきます。

以前までは、DockerやWSLを使って開発ができそうな状態までをメモしてきました。
しかし、少し前に画期的なものがMicrosoftから発表されました。
そう、WSL2です。

以前までのWSL(以下、WSL1)から大きく改善され、個人的には普段使いできるのでは?という状態までなっています。
今回は、WSL2を導入してWindows上でRuby環境を構築、rubocopで変なコードを怒ってもらうところまでをまとめます。


WSL2をインストール

WSL2を使うまでの準備

WSL2は、執筆時点ではWindows Insider ProgramのFastリングにて配布されている開発版の機能です。
まだ安定版ではなく、開発版なので不安定だったりするかもしれないので自己責任で導入しましょう。

設定自体は簡単。
Windows10の設定から、「更新とセキュリティ」の中にある「Windows Insider Program」から設定できます。
ここからファストを選択し、そのうちWindows Updateで配信されるBuild 18917以降の更新データを適応するだけ。
本当に簡単です。

ディストリビューションの選択・インストール

Microsoft Storeからインストールできます。
ここに関しては、WSL1と同様です。

好きなものを選んでインストールしましょう。
今回はUbuntuを使っていきます。

WSL2上にRuby・rubocopをインストール

Rubyをインストール

WSL2はほぼLinuxと同じ感覚で使うことができるので、Linuxのお作法にのっとって環境を作っていきます。
ここでは、rbenvを使って環境を作っていきます。

手順としては、以下の通り。

  • rbenvをインストール
  • ruby-buildをインストール
  • 好きなバージョンのRubyをインストール
    • 今回は2.6.3をインストールしました

という感じです。

rubocopのインストール

Gemとして配布されているので、以下のコンパイル一発です。

gem install rubocop

Windows側のAtomからWSL2上のrubocopを実行する

WSLのrubocopをWindows側のVSCodeから使えないというGithubのissueを参考にします。

@echo off
bash.exe -c "$(/home/ユーザ名/.rbenv/bin/rbenv which rubocop) %*"`


上記の記述を「rubocop.bat」として、Windows側の適当な場所に配置します。

あとは、AtomのLinter-rubocopなどの設定にbatファイルのパスを設定すればOK。

あとは、実際に動いているかを確認してみましょう。

しっかりrubocopさんが怒ってくれていますね。
これにてWindowsでもしっかり開発ができる環境がLinuxのお作法にのっとって構築できました。

まとめ

今回は、WSL2を使ってWindows上にRubyの開発環境を作り、Windows側のAtomからrubocopを使う方法をまとめました。

今回は、ここまで。
おわり