WindowsでもRailsの開発環境をそろえてみた
Railsの開発は、基本MacBook Proで行っているので、何の感慨もなく環境構築できるのですが、WindowsだといろいろUNIX系OSとの差異が目立って、開発環境を準備できておらず、家のWindows DesktopがTwitter専用マシンと化していたので、この際開発環境を構築してみたのでメモです。
当初はWSL(無印)で頑張ろうとしていたんですが、Dockerがうまく動かなかったので、Insider Previewを有効化した上でWSL2を使用しています。
WSL2はWindows 10のbuild 2004から利用可能になります、リリースまで秒読み段階みたいなのですが、COVID-19の影響を受けているようで、リリースされそうだけどされないような状態になっています。。。 もう4月終わるよ
なお、IDEはRubyMineを使用します。
WSL2を有効化
にいい感じの方法が載っていたのでそのまま(おい
Ubuntuをインストール
数日前に、Ubuntu 20.04 LTSがリリースされましたが、人柱にはなりたくないので、おとなしく18.04 LTSを入れることにします。
Windows側にDocker Desktopをインストール
Ubuntu on WSLでは、Docker darmonは動かさず、Windows OS上で動いているDocker daemonを使用する形式のようです。
そこで、Windows側にDocker Desktopをインストールして、起動しておきます。
WSL2で動くLinuxディストリビューションが、Settings→Resources→WSL INTEGRATIONに表示されているので、トグルをオンにしておきます。
Ubuntu上でDockerを動かしてみる
早速、動かしてみます。
うん、いい感じですね!
rbenvをインストール
・・・中身Ubuntuなので、特に思うこともなく、インストールします
RubyMineにWSL上のRubyを読み込ませる
VSCodeでいうRemote的なものを使って、RubyMineでもUbuntuに入ったRubyのSDKを読み込ませます。
Settings→Languages & Frameworks→Ruby SDK and Gemsを開き、「+」→「New Remote」
Linuxディストリビューションを選択しますが、ここで注意したいのがRubyのパスです。
rbenvでインストールしたRubyは、どこにあると思いますか?見てみましょう。
(kentaro
はユーザー名なので、適宜置換してください)
kentaro@DESKTOP1:~$ which ruby /home/kentaro/.rbenv/shims/ruby
~/.rbenv/shims/ruby
が、Windows側から見えない(というより、shims
というディレクトリは実際には存在しないようです)、RubyMineではエラーになってしまいます。
そこで、それぞれのバージョンごとに、パスを指定してあげます。
/home/kentaro/.rbenv/versions/{Rubyのバージョン}/bin/ruby
ターミナルもWSLを使うようにする
Dockerコマンドを叩いたりするのは、Ubuntu上で行います。
なので、RubyMineから見えるTerminalもUbuntuのものにしたいですよね。
「Tools」→「Terminal」の「Shell path」をC:\Windows\System32\bash.exe
にします。
うん!いい感じですね!
まとめ
説明になってるようでなってないのですが、備忘録ということなので・・・
これで、Windows環境でも開発を進めるのが楽になります。
早くbuild 2004が正式リリースされて欲しい・・・
おまけ:Windows⇔WSLのファイルの扱い
最近のWSLでは、(WSL1も共通で)/mnt
以下に、Windowsマシンのディレクトリがマウントされるようになっているようです。
なので、開発のプロジェクトなどはWindows OS側に置いて、Ubuntu側にはそこへのリンボリックリンクを置いておくという運用にしています。 (MacとプロジェクトをDrive経由で同期したいという需要もあるため)