この記事は、「fukuoka.ex Elixir/Phoenix Advent Calendar 2020」の15日目です
昨日は、エリジョ(Elixir女子部)のオーガナイザー、@gkumi5638 さんの「Elixirでバリデーションを実装してみた」でした
Elixir Digitalization Implementors/fukuoka.ex/kokura.exのpiacereです
ご覧いただいて、ありがとうございます
以前、Windowsでcygwinを使って、Elixir本体をビルド/カスタマイズするコラム を書きましたが、WSL2でも同様のビルド/カスタマイズが可能なのか、検証してみたいと思います
余力あれば、WSL2でビルドしたElixir本体は、素のWindowsでも動くのか確認したいと思います
内容が、面白かったり、役に立ったら、「LGTM」よろしくお願いします
Advent Calendar、fukuoka.ex1位、Elixir2位達成ヽ(=´▽`=)ノ
fukuoka.ex Advent Calendar、Webテクノロジーカテゴリで堂々1位 … 各コラムぜひお読みください
https://qiita.com/advent-calendar/2020/fukuokaex
そして、プログラミング言語カテゴリは、1位がRust、2位がElixir、3位がGoとモダン言語揃い踏みでのトップ3、熱いネー
https://qiita.com/advent-calendar/2020/elixir
WSL2とインストール
下記「方法b)WSL2上でUbuntu 18.04 LTSを使う」の通り、WSL2とをインストールしてください
なお、「sshの設定」と「Nervesをインストール」以降は、ここでは不要です
WindowsからElixir IoT端末を作ってみた:「Raspberry Pi OS」を入れた後、Elixir IoTフレームワーク「Nerves」へ
https://qiita.com/piacerex/items/98e1bde676263f5f9f81#%E6%96%B9%E6%B3%95%EF%BD%82wsl2%E4%B8%8A%E3%81%A7ubuntu-1804-lts%E3%82%92%E4%BD%BF%E3%81%86
Elixir本体ソースコードのgit cloneとビルド
下記コラムの「Elixir本体ソースコードのgit cloneとビルド」の通りに実行します
Elixir本体ビルド②:Elixir本体のバージョンをいじってmake、iexバージョン変更
https://qiita.com/piacerex/items/5c38bce0e3abdc1428bf#elixir%E6%9C%AC%E4%BD%93%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AEgit-clone%E3%81%A8%E3%83%93%E3%83%AB%E3%83%89
iexのバージョンを変更してみる
こちらも、下記コラムの「iexのバージョンを変更してみる」の通りに実行します
Elixir本体ビルド②:Elixir本体のバージョンをいじってmake、iexバージョン変更
https://qiita.com/piacerex/items/5c38bce0e3abdc1428bf#iex%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B
ビルド完了したiexで動かしたものは、こんな感じで、上手くいきました
WSL2でビルドしたElixir本体は素のWindowsで動く?
ここで疑問なのは、WSL2でビルドしたElixir本体は、素のWindowsで動くのか? … という点です
試してみましょう
下記コマンドで、WindowsのCドライブ直下に、ビルドしたElixirをコピーします
$ cd ../..
$ cp -a elixir/ /mnt/c/
最後に
WSL2+Ubuntuを使ってElixirビルドを行っても全く問題無く、さらに素のWindowsでも使えました
Windowsを利用されてるアルケミストは、Cygwinよりも安定性高いWSL2+Ubuntuがオススメです
p.s.このコラムが、面白かったり、役に立ったら…
明日の記事は、@masatam81 さんの「動的計画法を使う問題をElixirで関数型っぽく解いてみる」です