Help us understand the problem. What is going on with this article?

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 毎に使用できる全てのバージョンを表示
yutackall
女性のための無料まとめ読みアプリ - pool(https://itunes.apple.com/jp/app/id1087273941?mt=8)、スポーツニュースまとめ読みアプリ - スマスポ!(https://itunes.apple.com/jp/app/id1050558072?mt=8) を作ってる人
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした