Ruby
Node.js
rbenv
anyenv
ndenv

Mac に anyenv でサクッとマルチ開発環境構築

More than 3 years have passed since last update.


はじめに

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