LoginSignup
11
6

More than 3 years have passed since last update.

elixir を Mac で使うなら asdf でバージョン管理しよう!

Last updated at Posted at 2019-11-22

概要

先日参加させていただきました、Elixirのもくもく会で教わった内容となりますが、Macでの環境構築時のメモです。

現在のところ、Elixir を使うのであれば、asdf を使うか DockerHub を使うかの2択のようです。他のインストール方法だと、バージョン等の問題でおすすめ出来ないようなお話でした。

ここでは、asdf を使った構築を書いていきます。

Homebrewとgitは入っている事が前提です。

  • Mac 10.14.6 Mojave
  • Homebrew 2.1.11
  • git version 2.21.0 (Apple Git-122.2)
  • bash, version 3.2.57(1)-release

参考にしたサイト

asdf のインストール

まず、asdf に必要なライブラリを入れていきます。

$ brew install coreutils automake autoconf openssl libyaml readline libxslt libtool unixodbc

asdf を Github より clone します。

$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.6.0

そして、パスを通しましょう。

$ echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bash_profile
$ echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bash_profile

ここで忘れないように、.bash_profile の読み直しをして、通したパスを有効にします。

$ source .bash_profile

※上記のコマンドを忘れていると、つぎのコマンドが動きませんので、様子がおかしい場合は、ターミナルの再起動を行いましょう。

必要なasdfプラグインも入れておきます

$ asdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang.git
$ asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git

ここまでで asdf の準備は整いました。

Erlang のインストール

つぎは、 Elixir の母体となる Erlang を入れましょう。これがないと Elixir が動きません。

$ asdf list-all erlang


でインストール可能なバージョンを確認します。

・
・
22.1.3
22.1.4
22.1.5
22.1.6
22.1.7
22.1.8
$ 

このような感じでざっと表示されます。

大体一番下の新しいバージョンを入れておけば良いようですので、

$ asdf install erlang [バージョン番号の新しいの]

上の結果の場合、

$ asdf install erlang 22.1.8

と書けば良い事になります。

ここで、JDK がインストールされていないと、

このようなダイアログが出現します。

この時に反射的にOKを押さずに、「詳しい情報」をクリックして、JDKをインストールしましょう。

ぽちっとボタンを押してインストールしましょう。

JAVAのインストールが終わると自動的に Erlang のインストールは再開されます。

結構時間が掛かる場合がありますが慌てず待ちます。

インストール出来たら確認しましょう。

$ asdf list erlang

このように打つと、インストール出来ているバージョンが全て表示されます。

上記の例でいうと、

$ asdf list erlang
  22.1.8

このようになります。

次に、asdf に 普段使う erlang のバージョンを指定します。

$ asdf global erlang [入れたバージョン]

となりますので、今回は

$ asdf global erlang 22.1.8

ですね。

Elixir のインストール

全く同じ手順となりますが、続いて Elixir も入れていきます。

$ asdf list-all elixir

このとき、私の実行環境では、

・
・
1.9.3
1.9.3-otp-20
1.9.3-otp-21
1.9.3-otp-22
1.9.4
1.9.4-otp-20
1.9.4-otp-21
1.9.4-otp-22
master
master-otp-21
master-otp-22
16:44:~$ 

このように表示されました。

$ asdf install elixir [バージョン番号の新しいの]

先程と同様、このように書けますが、今回は、

1.9.4-otp-22

を入れます。どうやら、otp-22 というのが、Erlang とのマッチングに関わるのだと思います。結果、

$ asdf install elixir 1.9.4-otp-22

このようになります。今度はインストールに時間がほぼ掛かりません。

終わったら、インストール出来た確認です。

$ asdf list elixir
  1.9.2-otp-22

このように入れたバージョンが返ってくればOKです。

最後に、通常使う Elixir のバージョン指定をします。

$ asdf global elixir [入れたバージョン]

ですので、

$ asdf global elixir 1.9.2-otp-22


このように指定すれば良いですね。

では、一応確認。

$ elixir -v
Erlang/OTP 22 [erts-10.5.6] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Elixir 1.9.4 (compiled with Erlang/OTP 22)


そして、ここまで出来ると、 iex という対話型のプログラミングツールを使う事が出来ます。

$ iex
Erlang/OTP 22 [erts-10.5.6] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Interactive Elixir (1.9.4) - press Ctrl+C to exit (type h() ENTER for help)

iex(1)> "hello"         
"hello"
iex(2)> 1 + 2
3
iex(3)> ["hello", "world"]
["hello", "world"]


完了です。では楽しんでください!

気がつく事などございましたらご指摘いただけると幸いです。

11
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
6