55
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

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

ElixirGetting Startedをやろうと思いまして、そのメモです。

はじめに

まずはGetting Startedの1.Introductionです。
内容は次の3つです。

  • Installation
  • Interactive mode
  • Running scripts

Installation

公式サイトのインストールガイドでMac OSXはbrew install elixirでインストールするようになってます。
楽ちんでいいですが、やっぱりバージョン切り替えとかできたほうがいいよなーってことでexenvを使います。
最近anyenvでexenvをインストールできるようになったみたいなので、exenvのインストールにはanyenvを使います。

anyenvにerlenvとexenvが入ったのは最近っぽいので、アップデートしておきましょう。
(anyenv-updateがインストールされてる必要があります)

anyenv update

Erlangインストール

ElixirにはErlangが必要なので、まずはErlangからインストールしていきます。
Erlangもanyenv経由のerlenvで管理しますが、なんとerlenvにはインストールコマンドがまだないため自分でビルドします。

erlenvをインストールします。

anyenv install erlenv
exec $SHELL -l

Erlangのビルドにあったほうがいいっぽいものをインストールしておきます。

brew install unixodbc wxmac fop

Erlangをerlenv配下のreleasesディレクトリにインストールします。
anyenv環境下では、~/.anyenv/envs/erlenv/releasesになります。

wget http://www.erlang.org/download/otp_src_18.2.1.tar.gz
tar zxf otp_src_18.2.1.tar.gz
cd otp_src_18.2.1
./configure --prefix=$HOME/.anyenv/envs/erlenv/releases/18.2.1
make -j 4
make install
erlenv global 18.2.1
erlenv rehash

ちゃんとインストールできてるか確認してみます。

$ erl
Erlang/OTP 18 [erts-7.2.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.2.1  (abort with ^G)
1> halt().

最後に、ソースファイルはもう使わないので削除しておきます。

cd ..
rm -rf otp_src_18.2.1 otp_src_18.2.1.tar.gz

Elixirインストール

exenvをインストールします。

anyenv install exenv

exenvにはインストールがあります。
最新版の1.2.3をインストールします。

exenv install 1.2.3
exenv global 1.2.3

インストールの確認にバージョンを表示してみます。

$ elixir -v
Erlang/OTP 18 [erts-7.2.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Elixir 1.2.3

Interactive mode

$ iex
Erlang/OTP 18 [erts-7.2.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

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

Running scripts

$ cat simple.exs
IO.puts "Hello world
from Elixir"

$ elixir simple.exs
Hello world
from Elixir

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
55
Help us understand the problem. What are the problem?