はじめに
今まで開発環境 (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 毎に使用できる全てのバージョンを表示 |