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

  • 119
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

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