WSL2でElixir本体のビルドとiexバージョン変更

この記事は、[「fukuoka.ex Elixir／Phoenix Advent Calendar 2020」](https://qiita.com/advent-calendar/2020/fukuokaex)の15日目です

昨日は、エリジョ（Elixir女子部）のオーガナイザー、@gkumi5638 さんの[「Elixirでバリデーションを実装してみた」](https://qiita.com/gkumi5638/items/a67bb585ce0f2d48b23f)でした

---

[Elixir Digitalization Implementors／fukuoka.ex／kokura.ex](https://fukuokaex.connpass.com/)のpiacereです
ご覧いただいて、ありがとうございます :bow:

以前、[Windowsでcygwinを使って、Elixir本体をビルド／カスタマイズするコラム](https://qiita.com/piacerex/items/5c38bce0e3abdc1428bf) を書きましたが、WSL2でも同様のビルド／カスタマイズが可能なのか、検証してみたいと思います

余力あれば、WSL2でビルドしたElixir本体は、素のWindowsでも動くのか確認したいと思います

内容が、面白かったり、役に立ったら、「LGTM」よろしくお願いします :wink:

<h3>:ocean::ocean::ocean: Advent Calendar、fukuoka.ex1位、Elixir2位達成ヽ(=´▽`=)ﾉ :ocean::ocean::ocean:</h3>

fukuoka.ex Advent Calendar、Webテクノロジーカテゴリで堂々1位 … 各コラムぜひお読みください
https://qiita.com/advent-calendar/2020/fukuokaex
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/8a22a81f-2917-6072-10bd-525e0fc24b75.png)](https://qiita.com/advent-calendar/2020/neosvr_reso)

そして、プログラミング言語カテゴリは、1位がRust、2位がElixir、3位がGoとモダン言語揃い踏みでのトップ3、熱いネー:laughing:
https://qiita.com/advent-calendar/2020/elixir
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/ea185203-c525-c778-dc10-6d2ecc391616.png)](https://qiita.com/advent-calendar/2020/elixir)

# WSL2とインストール

下記「方法ｂ）WSL2上でUbuntu 18.04 LTSを使う」の通り、WSL2とをインストールしてください

なお、「sshの設定」と「Nervesをインストール」以降は、ここでは不要です

<b>WindowsからElixir IoT端末を作ってみた：「Raspberry Pi OS」を入れた後、Elixir IoTフレームワーク「Nerves」へ</b>
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とビルド」](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)の通りに実行します

<b>Elixir本体ビルド②：Elixir本体のバージョンをいじってmake、iexバージョン変更</b>
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のバージョンを変更してみる」](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)の通りに実行します

<b>Elixir本体ビルド②：Elixir本体のバージョンをいじってmake、iexバージョン変更</b>
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で動かしたものは、こんな感じで、上手くいきました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/c57dbd99-3e46-a4a2-3fa6-396eac393a99.png)

# WSL2でビルドしたElixir本体は素のWindowsで動く？

ここで疑問なのは、WSL2でビルドしたElixir本体は、素のWindowsで動くのか？ … という点です

試してみましょう

下記コマンドで、WindowsのCドライブ直下に、ビルドしたElixirをコピーします

```
$ cd ../..
$ cp -a elixir/ /mnt/c/
```

実行してみると、なんか何事も無く、動きました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/748c84a5-aba3-b7c0-4f80-8e202d5b8545.png)

# 最後に

WSL2＋Ubuntuを使ってElixirビルドを行っても全く問題無く、さらに素のWindowsでも使えました

Windowsを利用されてるアルケミストは、Cygwinよりも安定性高いWSL2＋Ubuntuがオススメです

# p.s.このコラムが、面白かったり、役に立ったら…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/67568d54-6584-ad33-77c7-b3b3afe70287.png) や ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/f5b819ef-d655-ef72-294c-b1a9d2c5b563.png) にて、どうぞ応援よろしくお願いします:bow:

---

明日の記事は、@masatam81 さんの[「動的計画法を使う問題をElixirで関数型っぽく解いてみる」](https://qiita.com/masatam81/items/0306163bb15d9cfbe092)です