はじめに
今まで開発環境 (Ruby|Node) を Chef + Vagrant を使って VM を構築してそこで開発していたんだけど、プロジェクトを切り替えるとき、
いちいち VM を立ち上げ直すのが、すげーめんどいし、時間もかかってたので、調べたら anyenv というめちゃ便利なツールがあったので、
インストールした時のメモ。
anyenv とは、ざっくり言うと、rbenv とか、nbenv とか複数バージョンをインストールできる **env 系をまとめて管理できるツール。
自分だと Mac の環境を汚さず、プロジェクト毎にバージョンを切り替えて開発したかったので、
Vagrant を使ってたんだけど、プロジェクトが増えてきて、VM の数が 4 つとか、5 つになってくると、
VM の立ち上げ直しだけでも限界を感じて、anyenv に切り替えた。
anyenv のインストール (bash)
$ git clone https://github.com/riywo/anyenv ~/.anyenv
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l                                                    # シェルの再起動
対応言語
色々な言語に対応しているので、色んな言語をチョット触ってみたいときにもすげー便利
下記コマンドでインストールできる言語の一覧が取得できる
$ anyenv install -l
Available **envs:
  Renv     # R
  crenv    # Crystal
  denv     # D
  erlenv   # Erlang
  exenv    # Elixir
  goenv    # Go
  hsenv    # Haskell
  jenv     # Java
  luaenv   # Lua
  ndenv    # Node.js
  nenv     # Node.js
  nodenv   # Node.js
  phpenv   # PHP
  plenv    # Perl
  pyenv    # Python
  rbenv    # Ruby
  sbtenv   # Scala
プラグインのインストール
プラグイン用のフォルダを作成
$ mkdir -p $(anyenv root)/plugins
anyenv-update のインストール
anyenv-update は、インストールされている **env を update するためのプラグイン
$ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
anyenv-git のインストール
anyenv-git は、anyenv で git のコマンドを実行できるようにするためのプラグイン
$ git clone https://github.com/znz/anyenv-git.git $(anyenv root)/plugins/anyenv-git
各種言語のインストール
Node.js 用の ndenv をインストール
$ anyenv install ndenv
var/folders/5h/wz7wkvzs45q6vkp3p7x2g9w00000gn/T/ndenv.20150825004228.37677 ~
Cloning https://github.com/riywo/ndenv.git...
Cloning into 'ndenv'...
remote: Counting objects: 58, done.
remote: Total 58 (delta 0), reused 0 (delta 0), pack-reused 58
Unpacking objects: 100% (58/58), done.
Checking connectivity... done.
~
~/.anyenv/envs/ndenv/plugins ~
Cloning https://github.com/riywo/node-build.git...
Cloning into 'node-build'...
remote: Counting objects: 59, done.
remote: Total 59 (delta 0), reused 0 (delta 0), pack-reused 59
Unpacking objects: 100% (59/59), done.
Checking connectivity... done.
~
Install ndenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.
$ exec $SHELL -l
$ ndenv -v
ndenv 0.4.0-2-gc669ff2
Ruby 用の rbenv をインストール
$ anyenv install rbenv
/var/folders/5h/wz7wkvzs45q6vkp3p7x2g9w00000gn/T/rbenv.20150825005513.39176 ~
Cloning https://github.com/sstephenson/rbenv.git...
Cloning into 'rbenv'...
remote: Counting objects: 2075, done.
remote: Total 2075 (delta 0), reused 0 (delta 0), pack-reused 2075
Receiving objects: 100% (2075/2075), 352.35 KiB | 262.00 KiB/s, done.
Resolving deltas: 100% (1266/1266), done.
Checking connectivity... done.
~
~/.anyenv/envs/rbenv/plugins ~
Cloning https://github.com/sstephenson/ruby-build.git...
Cloning into 'ruby-build'...
remote: Counting objects: 5015, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5015 (delta 0), reused 0 (delta 0), pack-reused 5009
Receiving objects: 100% (5015/5015), 930.56 KiB | 310.00 KiB/s, done.
Resolving deltas: 100% (2706/2706), done.
Checking connectivity... done.
~
Install rbenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.
$ exec $SHELL -l
$ rbenv -v
rbenv 0.4.0-153-g3b6faa8
Node.js をインストール
現在の最新バージョンの v0.12.7 をインストール
$ ndenv install 0.12.7
Downloading node-v0.12.7-darwin-x64.tar.gz...
-> https://nodejs.org/dist/v0.12.7/node-v0.12.7-darwin-x64.tar.gz
Installing node-v0.12.7-darwin-x64...
Installed node-v0.12.7-darwin-x64 to /Users/yutatakuman/.anyenv/envs/ndenv/versions/0.12.7
$ anyenv versions # 現在インストールされているバージョンの一覧を取得
ndenv:
* 0.12.7 (set by /Users/yutackall/.anyenv/envs/ndenv/version)
rbenv:
* system (set by /Users/yutackall/.anyenv/envs/rbenv/version)
$ which npm # npm の確認
/Users/yutackall/.anyenv/envs/ndenv/shims/npm
Ruby をインストール
今回は、system にインストールされているバージョンをそのまま使用するためスキップ
global の設定
global で使用するバージョンを指定
$ ndenv global 0.12.7
$ rbenv global system  # Ruby は Mac にインストールされている Ruby を使用
$ anyenv versions
ndenv:
* 0.12.7 (set by /Users/yutackall/.anyenv/envs/ndenv/version)
rbenv:
* system (set by /Users/yutackall/.anyenv/envs/rbenv/version)
anyenv のコマンド一覧
| コマンド | 概要 | 
|---|---|
| commands | 使用できるコマンド一覧を表示 | 
| completions | 入力補完のコマンド?? | 
| envs | 使用できる **env の一覧を表示 | 
| git | インストールしたプラグインや、**env に対して git コマンドをそのまま実行できる プラグインによる追加 | 
| global | グローバルで使用しているバージョンを表示 | 
| help | ヘルプを表示 | 
| init | anyenv の初期化 プロファイルの読み込み時に実行される | 
| install | 後ろのコマンドに **env を入れるとインストール -lのオプションをつけるとインストールできる **env の一覧が表示される | 
| local | ローカルのアプリケーションで使用しているバージョンを表示 | 
| root | anyenv の root のパスを表示 | 
| update | インストールした **env のアップデートを実行 プラグインによる追加 | 
| version | **env 毎に現在のバージョンを表示 | 
| versions | **env 毎に使用できる全てのバージョンを表示 |