LoginSignup
65
57

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

Last updated at Posted at 2016-05-24

2024年3月追記

asdfのプラグインと互換性を持ち、同一のサブコマンド体系を持つ後発プロジェクトのmise(旧名rtx)が登場しており、筆者は現在こちらをおすすめしています。使用感も大きく変わりません。
バージョン切替をshim scriptではなく環境変数の動的書き換えによって管理する方式となっており、direnvと組み合わせて利用することでエディターとの連携も安定して実現できます。


愛用者も多いとは思いますが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もある。
インストールが簡単だと新しい言語に触れようというやる気も湧いてきます。湧いてきません?

65
57
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65
57