#概要
v1.0.0が出たりよさげな本が出版されたりと、安定軌道に乗ったかもしれないElixirですが、バージョン関連の混乱がちょっと前までありました。バージョンを上げたり下げたりすると解決するエラーとか。今もあるかもしれません。
現在はとりあえずErlangもElixirも最新バージョンを入れておけば大丈夫です。最新バージョンをソースコードビルドしてインストールしましょう。
#環境
- OS X Yosemite (10.10.1)
Linux環境も基本的には同じだと思うんですが、後述する準備が違うものになります。
#入れるバージョン
現在の最新バージョン
####Elrang
- 17.4
####Elixir
- v1.0.2
を入れましょう。他のバージョンでもやり方は同じですが、Elixirには対応しているErlangのバージョンがあるのでそれを確認してください。
手順
##Erlangをkerlでバージョン管理
準備
_Command Line Tools for Xcode_をインストールしておく。これはErlangをビルドする前にopenssl関連を入れておかないと、ErlangはビルドできてもElixirがビルドできないからです。
Linuxでも同様のことをしないといけませんが条件は追えていません。なんとかしてErlangビルド後にcrypto:start/0
でok
が返ってくるようにしてください!!
(追記:LinuxでErlangをビルドするときは、voluntasさんの記事「Scientific Linux 6.0 に Erlang をインストールしてみる」に書かれている
$ yum install gcc gcc-c++ make openssl-devel ncurses-devel
をして必要なソフトを入れるとうまくいくと思います。)
Erlangのインストール
Erlangのバージョン管理をソースコード・ビルドで行うツールがkerlです。
適当なbinディレクトリで
$ curl -O https://raw.githubusercontent.com/spawngrid/kerl/master/kerl
$ chmod a+x kerl
でkerl
を実行コマンドにします。
$ kerl list releases
で使えるバージョンを確認。最新のもの(ここでは17.4)を、好きなビルド名(ここではbuild17.4)を付けてビルドします。
$ kerl build 17.4 build17.4
ちょっと時間がかかります。
次にインストールを行います。
まずビルドバージョンごとにインストール先のディレクトリを作って、kerl install
コマンドを叩きます。
$ mkdir -p ~/bin/erlang/17.4
$ kerl install build17.4 ~/bin/erlang/17.4
最後にこのインストールを有効化します。kerl install
コマンドを実行すると最終行にactivate
コマンドのパスが表示されるのでそれを叩いてください。
$ . ~/bin/erlang/17.4/activate
###確認
Erlangがインストールされているか確認しましょう。
$ erl
Erlang/OTP 17 [erts-6.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V6.3 (abort with ^G)
1> crypto:start().
2> ok
最後にcrypto:start/0
を叩いていますが、このモジュールが入っていないとElixirのインストールで失敗するので確認しています。
crypto:start/0
に失敗したなら、上述の準備に書かれた作業をしていない可能性が高いので、kerl delete
でインストールしたものとビルドしたものを消してから、準備してもう一度ビルドしてください。
Elixirのインストール
Elixirはバージョン管理ソフトがなさそうなのでgitで落としてきます。
$ git clone https://github.com/elixir-lang/elixir.git
$ cd elixir
最新のタグを確認して、
$ git tag
タグをチェックアウトしてブランチを作ります。
$ git checkout -b v1.0.2 refs/tags/v1.0.2
最後はドキュメントに書かれている通り、ビルドします。
$ make clean test
elixir/bin
にパスを通しておきましょう。
#まとめ
面倒臭いですが一度作ってしまうと最新のElixir環境が維持できるようになります。
追記
2015.2.14 準備に追記