#はじめに
web開発に関してはmacユーザが多いと思いますが、windowsでも WSL( Windows Subsystem for Linux) なるものでLinuxでのRails開発環境をある程度整えることができました。
備忘として残そうと思います。
環境 |
---|
Windows 10 Home 64bit |
また、今回導入したものは以下となります。
導入したもの |
---|
Ruby 2.6.6 |
Rails 6.0.2.2 |
mysql for linux 14.14 |
Atom 1.45.0 |
#WSLを導入する
WSLの導入には@yoshigeさんの以下記事が非常に参考になりました。
まずは、以下の記事を参考にWSL1を導入し、初期設定まで済ませます。
Microsoft StoreでLinuxのディストリビューションを選んで導入することになるが、自分はUbuntu 18.04 LTS を導入しました。
初心者のためのWSL( 1 ) ~初期設定,CUI設定編~
GUIも使えた方が便利なので、以下記事を参考にGUI設定まで済ませます。
初心者のためのWSL( 2 ) ~GUI設定,デスクトップ環境設定編~
#WSL2を導入する
WSL2の導入は少し複雑です。
###1. Windows10 Insider Preview に登録 ⇒ ビルド更新
WSL2はビルドが18917
以上でないと導入できません。
以下URLの手順に沿ってWindows10 Insider Preview に登録しビルドを更新してください。
https://insider.windows.com/ja-jp/getting-started/#register
###2. ビルドを確認する
設定
⇒ システム
⇒ バージョン情報
でOSビルド欄をみて、18917
以上であることを確認してください。
###3. 仮想マシン有効化
以下コマンドを管理者権限のPowerShellで実行し、再起動してください。
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
###4. WSL2へ切り替え
以下、コマンドを管理者権限のPowerShellで実行してください。
ビルドが18917
以上でないと、以下コマンドは実行できません。
現在のWSLバージョンを確認する
実行コマンド
wsl -l -v
出力結果
NAME STATE VERSION
* Ubuntu-18.04 Running 1
WSLバージョンを2へ切り替える(結構時間がかかるかもしれません)
wsl --set-version Ubuntu 2
切り替え後のバージョンを確認する
実行コマンド
wsl -l -v
出力結果
NAME STATE VERSION
* Ubuntu-18.04 Running 2
WSLのバージョンが「2」になっていることを確認出来たらWSL2の導入は完了です。
#WSL2へ切り替えた後の設定
###1. .bash_profileを編集
WSL2に切り替えた後だと、ターミナル立ち上げの際に.bashrc
を読み込んでくれない仕様になっているようです。
参考
WindowsTerminalやPowerShellからWSL2を実行した際に~/.bashrcが読み込まれない
自分は.bash_profile
に以下を追加することで回避しました。
if [[ -f ~/.bashrc ]] ; then
~/.bashrc
fi
###3. GUI設定の変更
WSL2はWSLと違い、仮想マシン上でLinuxを動作させています。
参考
https://www.atmarkit.co.jp/ait/articles/1906/14/news019.html
なのでWSLと違い、window環境 ⇔ Linux環境のIPアドレスが別々に扱われます。
以下、windowsのコマンドラインでipconfigを実行した例になります。
Wireless LAN adapter Wi-Fi:
IPv4 アドレス . . . . . . . . . . . .: xxx.xxx.xxx.xxx
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: xxx.xxx.xxx.1
イーサネット アダプター vEthernet (WSL):
IPv4 アドレス . . . . . . . . . . . .: yyy.yyy.yyy.yyy
サブネット マスク . . . . . . . . . .: 255.255.240.0
デフォルト ゲートウェイ . . . . . . .: yyy.yyy.yyy.1
新しくイーサネット アダプター vEthernet (WSL)
が追加されていることがわかります。
IPが起動するたびに変更されるので、Xlaunchの待受け先もそれに伴い修正する必要があります。
GUI設定にて.bashrcにexport DISPLAY=localhost:0
と記載していた部分を以下のように修正します。
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
これで、IPアドレスが変更されても、設定しなおすことなくGUIが立ち上がります。
###ビープ音を止める
デフォルトではビープ音が鳴る設定になっており、これがうるさいので鳴らない用に設定していきます。
ubuntu18.04
で以下コマンドを実行
vi /etc/inputrc
以下行のコメントアウトを削除し、設定を有効化します。
set bell-style none
これで設定完了です。