週刊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ライフを!