概要

自分は Ruby には rbenv 、 Go には goenv と、プログラミング言語のバージョン管理にインタフェースの共通している **env 系を使っています。

今回たまたま知った anyenv は、それら **env と付くものをまとめて扱えるツールです。

バラバラになっていた **env を anyenv 経由で扱えるようにまとめたので、その手順をメモしておきます。

移行手順

anyenv のインストール

公式の手順通りに行ないます(最新の手順は公式を参照してください)。
手元の環境は macOS だったので Homebrew 経由でインストールしました。

# anyenv のインストール
$ brew install anyenv

# 以下で出力される anyenv の初期化スクリプトを .bash_profile に追加
$ anyenv init

# ターミナルを再起動し、出力される以下のコマンドを実行
$ anyenv install --init

**env のインストール

自分に必要な各言語のバージョン管理ツールを anyenv 経由でインストールします。
といっても、 anyenv install の後に欲しいものを指定するだけです。

# rbenv, goenv, nodenv をインストール
$ anyenv install rbenv
$ anyenv install goenv
$ anyenv install nodenv

**env への PATH は anyenv が通してくれるので、追加の設定は不要です。
必要な言語バージョンを指定してインストール可能です。

# **env 系のコマンドがそのまま使える
$ rbenv install -l # インストール可能なバージョン一覧を表示
$ rbenv install x.y.z # バージョンを指定してインストール

旧ツールのお掃除

これまで利用していた **env は直接使う必要がなくなったため、削除します。

# アンインストール
$ brew uninstall rbenv
$ brew uninstall goenv
$ brew uninstall nodenv

# .bash_profile から **env init してる箇所や PATH を通している箇所を削除
$ vim ~/.bash_profile

マニフェストの更新

例えば rbenv で利用可能な言語バージョンが増えた場合、 ruby-build を最新化する等の手順が必要だったかと思います。 anyenv では、それらのマニフェスト更新に対してもコマンド一発でできるようにしてくれています(神)。

$ anyenv install --update

参考

anyenv - GitHub