Erlang/Elixirのパッケージマネージャー「Hex」
Erlang/Elixirで、RubyGems(Ruby言語用のパッケージ管理システム)に相当するツールが用意されていました。
それが、「Hex」というパッケージ管理システムです。
Hex
Hexの使い方など、参考情報。
Hex は Elixir, Erlang 向けのパッケージ管理ツールです。ruby で言うところの rubygems、node.js で言うところの npm です。
登録されているライブラリは https://hex.pm/ から探すことができます。
良いライブラリのある言語にはそれを支える優秀なパッケージマネージャが必ずあります。RubyのRubyGems, PealのCPAN, NodeJSのnpmなどです。
Elixir/ErlangにもHexというパッケージマネージャーがあります。
Elixir のビルドツール mix が利用するパッケージマネージャーに hex.pm というものがある. hex.pm を Erlang から利用するときは,この rebar3 の利用が推奨されているようだ.
Erlang パッケージ
以前のレッスンで Mix と依存関係の管理を扱いましたが、 Erlang ライブラリを組み込むのも同様の方法で動作します。
万が一 Erlang ライブラリが Hex に上がっていない(プッシュされていない)場合には、代わりに git リポジトリを参照することができます:
Elixirのエコシステムと開発の流れ
Elixirによるアプリケーション開発を続けていると、 次のような作業を定常的に行うことになります。
- 利用するライブラリの管理
- 雛形アプリの作成
- アプリのコンパイル・起動・停止
Elixirでは、これらのタスクを実行するためのツールとして、mixと呼ばれるコマンドが用意されています。 mixコマンドはElixirのインストール時に利用可能になるので、すでに皆さんの手元でも実行できるはずです。
mixを使ったライブラリ管理
Elixirのライブラリを新しくインストールして使いたい場合、どうすればよいでしょうか? PerlにCPANが、RubyにRubygemsが、node.jsにはnpmがあるように、ElixirにはHexというライブラリ管理の仕組みがあります。
Elixirでhex.pmにホスティングされたライブラリを利用するには、Hexが必要です。 Hexは、ElixirとErlang向けのパッケージ管理ツールであり、mixを使ってインストールできます。
以下のようにmix local.hexを実行すると、Hexをインストールするかどうか[Yn]で聞かれるので、 Yとしてインストールしてください。
これでhexコマンドが利用できるようになりますが、Elixirでは実際のライブラリ取得やコンパイルといった操作で、Hexを直接は使いません。
代わりに、後述するmix deps.getやmix deps.compileといったmixのタスクを使います。 Hexは、これらのmixのライブラリ操作タスクで、内部的に利用されています。
- mixコマンド
- Hexパッケージ管理システム
これらを活用すれば、Elixirでライブラリーを利用できるんですね。