Edited at

Windows Subsystem for LinuxのUbuntuにanyenv/exenvでElixirをインストールする

More than 1 year has passed since last update.

Macへのインストールの記事はありましたが、WSL向けがなかったので。


この記事の内容


  • Windows 10 Spring Creators Update / RS4 / 1803 Windows Subsystem for LinuxのUbuntuに


    • anyenv/erlenvで Erlang をインストールする

    • anyenv/exenvで Elixir をインストールする




必要パッケージのインストール

sudo apt install \

autoconf \
build-essential \
curl \
default-jdk \
gawk \
file \
fop \
libncurses5-dev \
libssl-dev \
libwxgtk3.0-dev \
unixodbc-dev

gawk, file, libncurses5-devは要らなかったかもしれません。


anyenv/erlenvで Erlang をインストールする


erlenvのインストール

anyenv install erlenv

exec $SHELL -l


fish-shellだと動かない問題の修正

fishだとerlenv init -で "setenv error: Too many arguments"エラーが出て動かないので、下記URLのように修正します。


Erlang 20.3をerlenv配下にインストール

erlenvはインストールコマンドがなく、ソースからビルドしてreleaseフォルダにインストールする必要があります。

curl -L http://erlang.org/download/otp_src_20.3.tar.gz -O

tar zxf otp_src_20.3.tar.gz
cd otp_src_20.3
./configure --prefix=$HOME/.anyenv/envs/erlenv/releases/20.3
make -j 4
make install


erlenvでErlangのバージョンをセット

erlenv global 20.3

erlenv rehash

これで、Erlangのコマンドが使用できるようになります。

$ erl

Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V9.3 (abort with ^G)
1>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
(v)ersion (k)ill (D)b-tables (d)istribution
a

ビルドに使用したソースはもう必要ないので削除しておきます。

cd ../

rm -rf otp_src_20.3 otp_src_20.3.tar.gz


anyenv/exenvで Elixir をインストールする


exenvのインストール

anyenv install exenv

exec $SHELL -l


Elixir 1.6.5をexenv配下にインストール

こちらは自分でソースをダウンロードする必要はありません。

exenv install 1.6.5


exenvでElixirのバージョンをセット

exenv global 1.6.5

exenv rehash

$ iex

Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]

Interactive Elixir (1.6.5) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
(v)ersion (k)ill (D)b-tables (d)istribution
a


おわりに

WSL向けって書いたけどWSL特有の問題はなかった…