asdfを使ってelixirをインストールする
asdfを使ってelixirをインストールしたのでメモ。
目次
環境
- macOS 10.14.6
- Macbook Pro 2014モデル
homebrewでインストールしたelixirを削除する
もしすでにhomebrewでelixirをインストールしていたら下記のように削除しておく。
$ brew remove elixir $ brew remove erlang
ちなみにふと気になって調べたら、homebrewのuninstallとremoveは同じことをしているらしい(エイリアスらしい)。
How to Uninstall Packages with Homebrew
asdfのインストール
基本的には公式ドキュメントに記載の通りでOK。
$ brew install asdf # 自分の環境がzshなので、shellへの追加方法もzsh版 $ echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.zshrc $ echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.zshrc $ brew install coreutils automake autoconf openssl libyaml readline libxslt libtool unixodbc unzip curl
erlang plugin, elixir pluginの追加
asdfでは各言語をインストールするためにはpluginを追加する必要があるので、elixirをインストールするためにはelixir pluginを追加する必要がある。こちらもREADMEにあるようにすればOKだが、URLの部分は省略可能みたい。
elixirはerlangのVMの上で動くので、erlangのpluginも合わせて追加する。
下記のコマンドでpluginの追加と確認ができる。
$ asdf plugin-add erlang $ asdf plugin-add elixir $ asdf plugin-list --urls elixir https://github.com/asdf-vm/asdf-elixir.git erlang https://github.com/asdf-vm/asdf-erlang.git
elixirのインストール
インストール可能なバージョンを表示してみる。すると、下記のような結果を得る。
$ asdf list-all elixir ... 1.8.2 1.8.2-otp-20 1.8.2-otp-21 1.8.2-otp-22 1.9.0-rc.0 1.9.0-rc.0-otp-20 1.9.0-rc.0-otp-21 1.9.0-rc.0-otp-22 1.9.0 1.9.0-otp-20 1.9.0-otp-21 1.9.0-otp-22 1.9.1 1.9.1-otp-20 1.9.1-otp-21 1.9.1-otp-22 master master-otp-20 master-otp-21 master-otp-22
pluginの説明を読むと、1.8.2
みたいにお尻に何もついてないのは、サポートしている1番古いOTPに対してビルドしてあるらしい。特定のOTPに対してビルドしてあるものは-otp-${OTP_MAJOR_VERSION}
となっているものを使えとのこと。
基本的にはOTPのバージョンも1番新しいものを指定しておけば良いと思う。
$ asdf install erlang 22.0.7 # erlangのインストールは結構時間かかる。自分のマシンで14分くらいかかった。 $ asdf install elixir 1.9.1-otp-22 $ asdf global erlang 22.0.7 $ asdf global elixir 1.9.1-otp-22
実行
elixirにはインタラクティブシェルがあるので、まずはそれを起動してelixirが正しくインストールされたかを確認する。
$ iex Erlang/OTP 22 [erts-10.4.4] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] Interactive Elixir (1.9.1) - press Ctrl+C to exit (type h() ENTER for help) iex(1)> IO.puts "hello, world" hello, world :ok iex(2)> 2 + 3 5
上記までいけばひとまずインストールは成功!