LoginSignup
2
1

More than 5 years have passed since last update.

CentOS7にelixirをインストールする

Last updated at Posted at 2016-07-04

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=1enabled=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からのデータ取得などなど、一通り触ってみます。

参考

CentOS7.1 64bitのyumリポジトリにEPELを追加
Erlangをソースから入れる

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1