Erlang
IntelliJ
rebar3
kerl

Erlang 〜kerl,Rebar3,IntelliJ IDEAによる開発環境の構築〜

More than 1 year has passed since last update.

すごいErlangゆかいに学ぼう!」を読み始めた。

タイトルの通り面白そうな本なのだが、環境構築があまり書いてなかったので、自分なりにまとめてみた。

ご指摘どんどんしていただけると助かりますm(_ _)m


環境


  • Mac OS X EI Capitan

  • IntelliJ IDEA 2017.1.4


Erlang

まずは何はなくともErlangをインストールしないことには始まらない。

ただ、Rubyであればrbenv,NodeでいえばnvmのようにErlangの複数バージョンを管理するためのツールが存在するはず。

自分が調べた限りだが、erln8kerlがあるようで、前者はNo Maintenance Intendedとなっていて、kerlのほうが良さそう。


kerl


kerlインストール

homebrewでインストールできる。

$ brew install kerl


Erlang configオプションのデフォルト指定

Erlang OTPのビルドに使うデフォルトのconfigオプションは ~/.kerlrc に書いておくことができる。

$ echo 'KERL_CONFIGURE_OPTIONS="--disable-hipe --enable-smp-support --enable-threads --enable-kernel-poll" ' > ~/.kerlrc

(上記のパラメータがどんな意味を持つかは今後、勉強を進めて理解を深めていこうと思う。)


kerlによるErlangインストール

リリースされているErlangのバージョンは以下のコマンドで確認することができる。

$ 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 18.3 19.0 19.1 19.2 19.3 20.0

R16までと17.0以降でバージョンの形式が変わっているのが面白い。(何があったのか気になるが…)

ついでに、すごいErlangゆかいに学ぼう!は2014/7/4発売でR15Bなので、そこからメジャーバージョンが5つも上がっていることになる。

Erlangの開発スピードは非常に早い!

その中からバージョンを選び、ビルドする。

このビルドにはけっこう時間がかかる(たぶん10分〜15分ぐらい)ので、ご注意を。

$ kerl build 19.3 19.3

つぎにインストールと有効化を実施する。

$ kerl install 19.3 ~/erlang/19.3

$ . ~/erlang/19.3/activate

これでErlangが使えるようになったと思うので、試しにerlと打ってみれば有効になっているか、指定したバージョンで動いているか確認することができる。

$ erl

Erlang/OTP 19 [erts-8.3] [source] [64-bit] [smp:4:4] [async-threads:10] [kernel-poll:false]

Eshell V8.3 (abort with ^G)
1>


Rebar3

すごいErlangゆかいに学ぼう!」では、rebarが紹介されている。

またIntelliJのErlangセットアップページでもrebarによる設定が解説されている。

しかしながら、RebarのGitHubでは、rebar自体はDeprecatedっていること、そしてRebar3を推奨することが書かれている。

なぜRebar3が必要になったか、についてはRebar3のReadMeにはこのように書かれている。


Rebar3 is the spiritual successor to rebar 2.x, which was the first usable build tool for Erlang that ended up seeing widespread community adoption. It however had several shortcomings that made it difficult to use with larger projects or with teams with users new to Erlang.


自分のあっさり解釈では、rebarは限界がきており、rebarの後継のRebar3を新しく作った、ということだと思う。

そのため、ここではRebar3のインストール方法についてまとめる。


Rebar3インストール

$ wget https://s3.amazonaws.com/rebar3/rebar3 && chmod +x rebar3

$ ./rebar3 local install
$ echo 'export PATH=$PATH:~/.cache/rebar3/bin' >> ~/.bash_profile
$ source ~/.bash_profile

インストールが完了したらコマンドが正しく表示されるか確認する。

$ rebar3 --version

rebar 3.4.1 on Erlang/OTP 19 Erts 8.3


IntelliJ IDEA Erlang Plugin設定

自分はIntelliJユーザなので、ErlangについてもIntelliJで動くように設定してみた。

IntelliJのErlangセットアップページを参考にした。

まずはIntelliJのErlangプラグインのインストール。

Preferences -> Plugin でErlangと入力すればプラグインを探すことができる。あとはそのプラグインをインストールすればよい。

デフォルトのプロジェクト構成を設定する必要がある。

File -> Other Settings -> Default Project Structure を開き、Erlang SKDを追加する。

Preferences -> Other Settings → Erlang External Toolsを開き、Rebar3の設定を行う。

問題なければ新規プロジェクトでErlangを選択でき、Erlangの開発ができるようになっている。


所感

すごいErlangゆかいに学ぼう!」からけっこうErlangがバージョンアップしていること、

そしてrebar -> Rebar3に移り変わっていること、

などから、Erlangはコミュニティが活発な言語という印象を受けた。

最新にキャッチアップしていくためにも、本を読み終わっても引き続き、

公式ページやコミュニティに参加して、最新の情報を勉強していく必要があると感じた。

Erlangの勉強は始まったばかりで、まだまだ終わらない!