前提

  • CentOS7 64bit版
  • Windows10ProのHyper-Vで行った
    • VagrantやDocker、EC2でも同様に可能なはず
  • Vagrantのbox化を考慮
    • rootユーザ:パスワードvagrant
    • 一般ユーザ:IDパスワードともにvagrant
    • 各種アカウントは可能な限りvagrantで統一
  • 複数バージョンインストール可能な環境変更ツールを積極採用

インストール手順

  1. OSセットアップ
  2. 監視ツールのインストール
  3. NodeJSのインストール
  4. Erlang/OPTのインストール
  5. Elixirのインストール
  6. Phoenixのインストール

OSセットアップ

以下の作業が済んでいることとする

  • SELinuxの無効化
  • Firewalldの無効化
  • yumリポジトリのインストール(epelなど)
  • システム自体のアップデート
  • その他環境設定(.bashrc、.bash_profile)など

ansibleでplaybookを作っておくことを推奨

監視ツールのインストール

  • ファイルやディレクトリを監視出来るツールを入れる
  • 参考サイト

inotify-toolsをインストールする理由は、Phoenixで要求されるからであり、Elixirで必須というわけではない。

# yum -y install inotify-tools

監視状態をテストしてみる(inotifyはバックグラウンドで動かす)

$ cd
$ echo "test" > test.txt
$ inotifywait -m test.txt &

ファイルを変更してみる
$ echo "test2" >> test.txt

監視できてるのを確認
test.txt MODIFY
test.txt CLOSE_WRITE,CLOSE
test.txt MODIFY
test.txt CLOSE_WRITE,CLOSE

プロセスをkillする
$ ps aux | grep inotify
$ kill 71117

NodeJSのインストール

  • 複数バージョンインストール出来るようにnodebrewを使う
  • nodebrewを使って任意のバージョンのnodejsをインストールする
  • 参考サイト

NodeJSをインストールする理由は、これから作る予定のサイトで要求されるからであり、Elixir、Phoenixで必須というわけではない。

nodebrew

$ cd
$ curl -L git.io/nodebrew | perl - setup
$ vi ~/.bashrc

以下を追記
export PATH=$HOME/.nodebrew/current/bin:$PATH
export PATH=$HOME/node_modules/.bin:$PATH

変更の反映
$ source ~/.bashrc

反映のテスト
$ nodebrew help

nodejs

バージョン確認(数分かかる場合がある)
$ nodebrew ls-remote

latest、stableをインストールする
$ nodebrew install-binary stable
$ nodebrew install-binary latest

インストール済みバージョン確認
$ nodebrew list

v8.9.4
v9.5.0

使用するバージョンを選択
$ nodebrew use v8.9.4

バージョン確認
$ node -v

インストールしたバージョンを消す場合

$ nodebrew uninstall バージョン
$ nodebrew clean バージョン

Erlang/OPTのインストール

  • 複数バージョンインストール出来るようにkerlを使う
  • kerlを使って任意のバージョンのErlangをインストールする
  • 参考サイト

kerl

kerl依存関係のインストール
# yum -y install gcc glibc-devel make ncurses-devel openssl-devel autoconf

kerlは環境一式をホームディレクトリ内に置くことを前提としているので一般ユーザでインストールする。今回はホームにbinディレクトリを作りそこのパスを通す

$ cd
$ curl -O https://raw.githubusercontent.com/kerl/kerl/master/kerl

権限変更
$ chmod a+x kerl

binに移動
$ mkdir ~/bin; mv kerl ~/bin/

パスを通す
$ vi ~/.bashrc

export PATHの前に追記
PATH=$HOME/bin:$PATH

変更を反映
$ source ~/.bashrc

Erlangインストールに先立ってデフォルト設定をあらかじめ.kerlrcファイルに記述しておく

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

Erlang

リストの更新(インストール前に一度だけやる)
$ kerl update releases

バージョンの確認(updateでも表示される)
$ kerl list releases

~略~
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 20.1 20.2
~略~

バージョン20.2をr20.2としてビルドする
$ kerl build 20.2 r20.2

正常にビルド完了
Erlang/OTP 20.2 (r20.2) has been successfully built

ホームのerlang/r20.2ディレクトリにインストールする
$ kerl install r20.2 ~/erlang/r20.2

インストール済みErlang一覧
$ kerl list installations

r15b03-1 /home/vagrant/erlang/r20.2

アクティベーション
$ . ~/erlang/r20.2/activate

起動確認
$ erl
Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10] [kernel-poll:false]

Ctrl+C → Aで終了する
  • アクティベートを実行したシェルセッション内でのみ有効となる
    • つまりログアウトするとアクティベーションはリセットされる
    • ~/.bashrcの最下行に. ~/erlang/r20.2/activateを記述しておけばOK

Elixirのインストール

  • 複数バージョンインストール出来るようにkerlを使う
  • kiexを使って任意のバージョンのElixirをインストールする
  • 参考サイト

kiex

$ cd
$ curl -sSL https://raw.githubusercontent.com/taylor/kiex/master/install | bash -s

パスを通す
$ echo 'test -s "$HOME/.kiex/scripts/kiex" && source "$HOME/.kiex/scripts/kiex"' >> ~/.bashrc

パスを反映
$ source ~/.bashrc

elixir

バージョン確認
$ kiex list known

1.2.6を入れてみる
$ kiex install 1.6.1

インストール済みElixir確認
$ kiex list

elixir-1.6.1

デフォルトのバージョンを指定しておく
$ kiex default 1.6.1

アクティベーション
$ kiex use 1.6.1

起動確認
$ iex
Interactive Elixir (1.6.1) - press Ctrl+C to exit (type h() ENTER for help)

Ctrl+C → Aで終了する

Phoenix

hex

パッケージ管理ツールのhexを道入する

$ mix local.hex --force

* creating .kiex/mix/archives/elixir-1.6.1/hex-0.17.3

バージョン確認
$ mix hex.info

Hex:    0.17.3
Elixir: 1.6.1
OTP:    20.2

Built with: Elixir 1.5.3 and OTP 18.3

rebar

依存管理にrebarを道入する

$ mix local.rebar --force

* creating .mix/rebar
* creating .mix/rebar3

brunch

SPAツールとしてbrunchを使う

$ npm install -g brunch

バージョン確認
$ brunch -v
2.10.12

phoenix

最新バージョン

$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez

バージョン指定

  • バージョン指定する場合は以下のサイトで確認する
$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new-1.2.1.ez --force

* creating .kiex/mix/archives/elixir-1.6.1/phoenix_new-1.2.1
バージョン確認
$ mix phoenix.new -v

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