Edited at

セオリー通りの方法でErlang(とElixir)をインストール(追記:Elixirのアップデート)

More than 3 years have passed since last update.

Erlang/Elixir 環境を用意した時の個人用の手順メモです。

ディストリビューション付属の Erlang はかなり古いので、tarball からビルドして最新版をつっこんでいます。Erlang は特殊なライブラリを使ってないので、普通のディストリビューションなら同じ手順でインストールできるかと思います。手元では CentOS 6.4, 6.7 と Ubuntu 11.04 で確認できています。


前提ファイルを準備

もし入ってなかったら yum や aptitude などで下記をインストールしておきます。


  • gcc

  • gcc-c++

  • glibc-devel

  • make

  • ncurses-devel

  • openssl-devel

  • autoconf


Erlang をインストール

Erlang のソース管理は kerl を使うのが定石らしいので、curl でもらってきます。

$ cd tmp

$ curl -O https://raw.githubusercontent.com/spawngrid/kerl/master/kerl
$ chmod +x kerl

$ ./kerl list releases
R10B-0 R10B-10 R10B-1a R10B-2 R10B-3 R10B-4 R10B-5 R10B-6 R10B-7 R10B-8 R10B-9 R11B-0 R11B-1 R11B-2 R11B-3 R11B-4 R11B-5 R12B-0 R12B-1 R12B-2 R12B-3 R12B-4 R12B-5 R13A R13B01 R13B02-1 R13B02 R13B03 R13B04 R13B R14A R14B01 R14B02 R14B03 R14B04 R14B R14B_erts-5.8.1.1 R15B01 R15B02 R15B02_with_MSVCR100_installer_fix R15B03-1 R15B03 R15B R16A_RELEASE_CANDIDATE R16B01 R16B02 R16B03-1 R16B03 R16B 17.0-rc1 17.0-rc2 17.0 17.1 17.3 17.4 17.5 18.0 18.1 18.2 18.2.1
Run "./kerl update releases" to update this list from erlang.org

最新版(18.2.1)を入れることにします。

$ ./kerl build 18.2.1 build18.2.1

$ sudo mkdir -p /usr/local/erl/18.2.1
$ sudo ./kerl install build18.2.1 /usr/local/erl/18.2.1

$ . /usr/local/erl/18.2.1/activate


動作確認

$ erl

1> crypto:start().
ok

.bashrc に下記行を追加して、ログイン時に activate されるようにして、Erlang の準備は完了です。


~/.bashrc

source /usr/local/erl/18.2.1/activate



Elixir をインストール

$ cd ~/tmp

$ git clone https://github.com/elixir-lang/elixir.git
$ cd elixir

バージョン(tag)を確認

$ git tag

 ・
 ・
 ・
v1.1.0
v1.1.0-rc.0
v1.1.1
v1.2.0-rc.0

$ git checkout -b v1.1.1 refs/tags/v1.1.1

$ make clean test

Elixir の実行アカウント(ここでは someuser)の権限でファイル一式を移動します。

$ sudo mv elixir /usr/local/

$ sudo chown -R someuser /usr/local/elixir

~/.bashrc で elixir/bin にパスを通して終了


~/.bashrc

PATH="/usr/local/elixir/bin:${PATH}"



追記:Elixir をアップデート

単にタグ切り替えするだけだと古いバージョンを使い続けてしまうため、make し直す必要があります。例えば 1.1.1 から 1.2 にアップデートする場合、下記でいけました。

$ git co -b v1.2.0 refs/tags/v1.2.0

$ make clean test


参考