環境

OS : CentOS 6.7
Erlang R14B04 ⇒ Erlang/OTP 21 [DEVELOPMENT]
Eshell V5.8.5 ⇒ Eshell V9.0.1
Elixir : 1.6.0-dev

経緯

CentOSElixir環境を構築しようとして、インストール方法通りにyum install elixirを実行したのだが、elixirなど知らんとのエラーとなってしまった。

# yum install elixir
No package elixir available.
Error: Nothing to do

その為、Erlangからyum install erlangでインストールした。

# yum install erlang
====================================
Install      72 Package(s)
Upgrade       1 Package(s)

Total download size: 57 M
Is this ok [y/N]: y
Downloading Packages:

Installed:
  erlang.x86_64 0:R14B-04.3.el6                                                 
Dependency Installed:
  SDL.x86_64 0:1.2.14-7.el6_7.1                                                 
Dependency Updated:
  libdrm.x86_64 0:2.4.65-2.el6                                                  

Complete!

次に、GithubからElixirCloneしてインストールしようとしたが、今度はErlangのバージョンが古過ぎてElixirがインストールできない。

# git clone https://github.com/elixir-lang/elixir.git

# cd /usr/local/lib/elixir/
# make clean test

cd lib/elixir && "/usr/bin/elixir/rebar" clean

=ERROR REPORT==== 6-Jul-2017::12:17:46 ===
Loading of /usr/bin/elixir/rebar/rebar/ebin/rebar.beam failed: badfile
escript: exception error: undefined function rebar:main/1
  in function  escript:run/2
  in call from escript:start/1
  in call from init:start_it/1
  in call from init:start_em/1

=ERROR REPORT==== 6-Jul-2017::12:17:46 ===
beam/beam_load.c(1365): Error loading module rebar:
  use of opcode 153; this emulator supports only up to 152

make: *** [clean] Error 127

Erlangのバージョンが古いようだ。

# /usr/bin/erl -v
Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]

Eshell V5.8.5  (abort with ^G)

困ってしまって、いっそのこと最新版のErlangElixirGithubからのソースからmakeインストールしようという試みを下記に記す。

まさか、最近になってもソースコードからコンパイルするとは思わなかった。

で、ここからが本題。

Erlangのインストール

git clone https://github.com/erlang/otp.git
cd otp
./otp_build autoconf
./configure
make
make install

デフォルトでは、/usr/local/bin/erlのシンボリックリンクが作成され、実体は/usr/local/lib/erlangにインストールされるようだ。最新のErlangがインストールされた。

# /usr/local/bin/erl -v
Erlang/OTP 21 [DEVELOPMENT] [erts-9.0.1] [source-e8a2cae] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V9.0.1  (abort with ^G)

Elixirのインストール

Elixirが配備されている/usr/local/lib/elixirに移動して、先程GithubからcloneしたElixirを再度インストールしてみる。

# cd /usr/local/lib/elixir/
# make clean test

~/.bash_profileElixirへのパス/usr/local/lib/elixir/binを通しても良いのだが、先程インストールしたErlangに合わせて、 /usr/local/binに、シンボリックリンクを作成した。

# cd /usr/local/bin
# ln -s ../lib/elixir/bin/elixir elixir
# ln -s ../lib/elixir/bin/elixirc elixirc
# ln -s ../lib/elixir/bin/iex iex    
# ln -s ../lib/elixir/bin/mix mix

とりあえず、最新のElixirがインストールできた。

$ iex
Erlang/OTP 21 [DEVELOPMENT] [erts-9.0.1] [source-e8a2cae] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:10] [hipe] [kernel-poll:false]

warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by running "locale" in your shell)
Interactive Elixir (1.6.0-dev) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 

サーバの言語設定に関しての警告は出ているのだが、とりあえずインストールに関してはうまくいった。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.