Elixirを始めようと思い、とりあえずインストールしました。
環境
vagrant + centos7
インストール
公式のインストールページを参考に進めます。
Elixir
sudo yum install elixir
Determining fastest mirrors
* base: ftp.yz.yamagata-u.ac.jp
* extras: download.nus.edu.sg
* updates: ftp.yz.yamagata-u.ac.jp
パッケージ elixir は利用できません。
エラー: 何もしません
デフォルトで入っているyumリポジトリ内にはないぽいので、
epelリポジトリをインストールします。
sudo yum install epel-release
sudo vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
enabled=1
をenabled=0
に変更する
で、再度
sudo yum install elixir --enablerepo=epel
これでインストール完了と思い、実行したところ、
elixir -v
/usr/bin/elixir: 82 行: exec: erl: 見つかりません
こんなエラーがでました。
色々ぐぐると、Erlangのインストールも必要みたいなので、インストールします。
(2016/07/05追記)
Elixirのインストールについてですが、その後、フレームワークのPhoenixをイストールしようとしたところ、
以下のようなエラーが発生しました。
mix local.hex
** (ArgumentError) argument error
(stdlib) re.erl:170: :re.split("local.hex", {:re_pattern, 0, 1, <<69, 82, 67, 80, 57, 0, 0, 0, 0, 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, ...>>}, [return: :binary, parts: :infinity])
(elixir) lib/regex.ex:308: Regex.split/3
(mix) lib/mix/utils.ex:310: Mix.Utils.command_to_module_name/1
(mix) lib/mix/utils.ex:61: Mix.Utils.command_to_module/2
(mix) lib/mix/task.ex:140: Mix.Task.get!/1
(mix) lib/mix/task.ex:168: Mix.Task.run/2
(mix) lib/mix/cli.ex:59: Mix.CLI.run_task/2
ぐぐったところ、Elixirのバージョンをあげれば直るらしいという情報を得たので、
yumからインストールではなくソースからのインストールに変更しました。
Compiling from source (Unix and MinGW)を参考にインストール
git clone https://github.com/elixir-lang/elixir.git
cd elixir
make clean test
インストール後に、pathを通したら問題なくいけました。
Erlang
ソースからインストールします。
wget http://erlang.org/download/otp_src_19.0.tar.gz
tar zxvf otp_src_19.0.tar.gz
cd otp_src_19.0
./otp_build autoconf
configure: error: No curses library functions found
ncursesのインストール
よく見るやつです。読み方は、えぬかーしす?らしいです。
sudo yum install ncurses ncurses-devel
インストール後に謎のメッセージが色々表示されました。
再度、ぐぐるとErlangをソースから入れるに解決策が書いてありました。
とりあえず、インストールに足りないモジュールを追加
sudo yum install openssl openssl-devel unixODBC unixODBC-devel fop java-1.8.0-openjdk-devel
その後、
./configure
make
sudo make install
して、インストール完了!!
確認
elixir -v
Elixir 0.12.5
erl -v
Erlang/OTP 19 [erts-8.0] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
elixir
がElixirの実行で、erl
がErlangの実行みたいです。
ついに、対話モードでちょっとだけ動かしました。
iex
Erlang/OTP 19 [erts-8.0] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
Interactive Elixir (0.12.5) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 40+2
42
iex(2)> "hello" <> "world"
"helloworld"
mysqlからのデータ取得とredisからのデータ取得などなど、一通り触ってみます。