週刊Elixirライブラリ 2015-1


Elixirのライブラリの解説を週ごとにお届けする記事です。
解説が間違っていた場合には、コメントか@hayabusa333にご連絡くださると嬉しいです。

今週はHexについて

# Hex is なに?
HexはErlang関連のエコシステムのためのパッケージマネージャーです。
Elixirにて使用することができ、Elixirにてパッケージの管理を行うために使用します。

# インストール方法
下記を実行し、Hexのインストールを行います。
$ mix local.hex
Are you sure you want to install archive https://s3.amazonaws.com/s3.hex.pm/installs/1.0.0/hex.ez? [Yn] y

下記が表示されれば成功です。
creating .mix/archives/hex.ez

※ mixはElixirにおけるビルドツールです。
作成、コンパイル、アプリケーションのテストなどで発生する依存関係を管理してくれます。


# 使い方
テスト用にディレクトリを作成し、
hexにてパッケージを管理を行うために mix.exs ファイルを作成します

$ mkdir test
$ cd test
$ vim mix.exs

defmodule MyProject.Mixfile do
 use Mix.Project

 def project do
  [app: :my_project,
  version: "0.0.1",
  elixir: "~> 0.13.0",
  deps: deps()]
 end

 def application, do: []

 defp deps do
  [{:phoenix, "~> 0.13.1"}]
 end
end

※ 今回は、phoenix の バージョン 0.13.1以上をプロジェクトにて使用すると記載しております。


# プロジェクトで使うパッケージをtestディレクトリ配下にインストール
$ mix deps.getRunning dependency resolution
Dependency resolution completed successfully
phoenix: v0.13.1
plug: v0.13.0
poison: v1.4.0
Getting phoenix (Hex package)
Checking package (https://s3.amazonaws.com/s3.hex.pm/tarballs/phoenix-0.13.1.tar)
Using locally cached package
Getting poison (Hex package)
Checking package (https://s3.amazonaws.com/s3.hex.pm/tarballs/poison-1.4.0.tar)
Using locally cached package
Getting plug (Hex package)
Checking package (https://s3.amazonaws.com/s3.hex.pm/tarballs/plug-0.13.0.tar)
Using locally cached package

Phoenix 内部にて plug と poison をインストールするようにパッケージ管理されているため、 plug と poison もインストールされます


# プロジェクト内部にインストールされたかを確認
phoenixのバージョン確認
$ head deps/phoenix/mix.exs
defmodule Phoenix.Mixfile do
 use Mix.Project

 @version "0.13.1"

 def project do

deps配下にインストールされたファイルの確認
$ ls deps/
phoenix plug poison

ローカル環境にインストールされていないことを確認
$ mix archive
 hex.ez

以上となります。

個人的にはローカル環境を汚さずにプロジェクトごとに管理を行い、パッケージをしっかりと管理して行きたい人なため hex で管理出来るのは好ましいなと感じました。

それでは皆様、良いElixirライフを!