Erlang
Node.js
Elixir
asdf

【言語バージョン管理】asdf使おう(erlang/elixir, node, etc...)

More than 1 year has passed since last update.

愛用者も多いとは思いますがasdfを使った言語環境構築やバージョン切り替えが非常に便利です。

CommonLispのASDFプロジェクトとの関係は僕にはわかりませんが、何がしかあるのかもしれませんし、ないのかもしれません。


強み

rvm/rbenvやnvm等のバージョンマネージャを1コマンドに統一できる 、というのが大きいです。その辺りの開発動機はポエムになっています。

localでインストールすれば.tool-versionsファイルが生成されるので、それをGitに入れればプロジェクトで共有もできます。

Pluginを作ることで、手頃なバージョンマネージャのない言語に対応できるのもグッド。

asdfは左手で容易に入力できるのも素晴らしいですね。


準備

OSX準拠です。基本的にはREADME通り。

$ brew install automake autoconf openssl libyaml readline libxslt libtool unixodbc # 準備。大概入ってそうですが。

$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf
$ echo '. $HOME/.asdf/asdf.sh' >> ~/.bashrc # この2行は各自の環境合わせで。
$ echo '. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc

$ . ~/.bashrc


Erlang/Elixir

更新も早いので積極的に追従していきたいですね。公式でも紹介されています。

$ asdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang.git

$ asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git

$ asdf install erlang 18.3
(数分かかる)
$ asdf global erlang 18.3

$ asdf install elixir 1.2.5
(結構すぐ終わる)
$ asdf global elixir 1.2.5

Erlangインストールの前にopensslをインストールするのを忘れていると、:sslモジュールがインストールされません。Hexがこれに依存しているので実質的に必須です。

brew経由でインストールしていれば、自動的にopensslのパスを解決して:sslをインストールしてくれます。

手動で指定する場合、

$ ERLANG_EXTRA_CONFIGURE_OPTIONS="--with-ssl=/usr/local/opt/openssl/" asdf install erlang 18.3

このようにオプションを渡します。


node.js

nodeとバージョン管理は不可分ですね。。

$ asdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs

後はほぼ同じです。注意点として、nodeではなくnodejsという名前でpluginを追加し、その後もnodejsの各バージョンをインストールします。コマンド名はOSXの場合nodeになります。


RubyとかGoもできます。Luaもある。

インストールが簡単だと新しい言語に触れようというやる気も湧いてきます。湧いてきません?