anyenvによる各言語の複数バージョン管理

anyenvのインストール方法と使い方を説明します。

**envとは

アプリケーション開発では、アプリの都合により特定のバージョンのプログラミング言語を利用する必要があります。 たくさんのアプリを開発していると、ひとつのマシン上に複数のバージョンを同居させ、開発するアプリによって使い分けたいといったニーズがあります。 これを実現するツールが各言語にあり、たとえば、Rubyにはrbenv、Pythonにはpyenvがあります。これらを総称して**envと呼びます。

anyenvとは

利用する言語数が増えると、.bash_profileに**envの設定が増え、**env自身の更新が負担になります。 anyenvはこれら**envを一括して管理できます。

anyenvのインストール方法

本体のインストール

anyenvのリポジトリをcloneし、.bash_profileを編集します。

git clone https://github.com/anyenv/anyenv ~/.anyenv
cat << 'EOF' >> ~/.bash_profile
# anyenv
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
EOF
exec $SHELL -l

インストールマニフェストディレクトリを初期化します。

anyenv install --init

インストールできる**envの一覧を確認します。

anyenv install -l

2019/03/17時点での出力結果は次の通りです。

$ anyenv install -l
  Renv
  crenv
  denv
  erlenv
  exenv
  goenv
  hsenv
  jenv
  luaenv
  nodenv
  phpenv
  plenv
  pyenv
  rbenv
  sbtenv
  scalaenv
  swiftenv

プラグインanyenv-updateのインストール

anyenvと**envとpluginを一括更新するものです。

mkdir -p $(anyenv root)/plugins
git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update

goenvでGoをインストール

Goは公式に複数バージョンのインストールをサポートしています。 基本的にgoenvを利用する必要はないでしょう。

goenvをインストールします。

anyenv install goenv
exec $SHELL -l

インストールできるGoの一覧を表示します。

goenv install -l

Goをインストールします。

goenv install 1.11.5

環境変数を設定します。

BASH_PROFILE_BK=`cat "$HOME/.bash_profile"`
cat << EOF > ~/.bash_profile
# go
export GOPATH="\$HOME/go"
export PATH="\$GOPATH/bin:\$PATH"
# goenv
export GOENV_DISABLE_GOPATH=1

$BASH_PROFILE_BK
EOF
exec $SHELL -l

現在のシェルのみで指定した環境を有効化します。

goenv shell 1.11.5

自ユーザ全体で指定した環境を有効化します。

goenv global 1.11.5

pyenvでPythonをインストール

pyenvをインストールします。

anyenv install pyenv
exec $SHELL -l

インストールできるPythonの一覧を表示します。

pyenv install -l

Pythonをインストールします。

pyenv install 3.6.7

現在のシェルのみで指定した環境を有効化します。

pyenv shell 3.6.7

自ユーザ全体で指定した環境を有効化します。

pyenv global 3.6.7

pyenv-virtualenvでPython仮想環境を構築

pyenvのプラグインpyenv-virtualenvのインストールします。

git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

pyenv-virtualenvで仮想環境を作成(Python3.3からはvenvを推奨)します。

pyenv virtualenv 3.6.7 venv3.6.7

作成した仮想環境を有効化します。

pyenv activate venv3.6.7

仮想環境を無効化します。

pyenv deactivate

仮想環境を削除します。

pyenv virtualenv-delete venv3.6.7

rbenvでRubyをインストール

rbenvをインストールします。

anyenv install rbenv
exec $SHELL -l

インストールできるRubyの一覧を表示します。

rbenv install -l

Rubyをインストールします。

rbenv install 2.5.3

現在のシェルのみで指定した環境を有効化します。

rbenv shell 2.5.3

自ユーザ全体で指定した環境を有効化します。

rbenv global 2.5.3

nodenvでNode.jsをインストール

nodenvをインストールします。

anyenv install nodenv
exec $SHELL -l

インストールできるNode.jsの一覧を表示します。

nodenv install -l

Node.jsをインストールします。

nodenv install 10.13.0

現在のシェルのみで指定した環境を有効化します。

nodenv shell 10.13.0

自ユーザ全体で指定した環境を有効化します。

nodenv global 10.13.0

各環境の更新

anyenvとanyenv-manifestと**envとpluginを一括更新します。

anyenv update