Rubyとnode.jsとgulp.jsの環境を最新にして詰まったことを解決方法と一緒にまとめてみる

## 問題
なにも考えずにnode.jsを5に上げたところ、gulp.js周りが動かなくなった。gulp.jsだけの問題かな？？と思ったけど、プラグインとして入れてあるruby-sassあたりも悪さしていたっぽいので、もう後々のRailsのアップデートのことも考えたらRubyもバージョン上げたほうが良さそうという話になって、とりあえず、以下のものを総合的にアップデートをかけることにした。

* rbenv ==> Ruby2.2.4
* nvm   ==> Node.js 5.0
* gulp  ==> gulp.js 3.9.1(うろ覚え)

gulpの各種プラグインについては今回は言及しない。とりあえず上記の作業が終わった時に`gulp install --save-dev`してみて警告が出てきたら、大抵解決策はQiitaで見つけることが出来る。あきらめないで！（真矢みき）

個人の備忘録に近いメモなので、わかりづらいところもあるかもしれないけど、そこはご愛嬌で。

### rbenvでRubyのバージョンアップ
正確に言うと新しいRubyのバージョンをインストールして、新しいバージョンに切り替えるというがrbenvの便利なところ。（だがしかし古いものをいつまでも持ち続けるのは無駄なので使わなくなったらuninstallだ）

#### rbenvのバージョンアップとrubyの新しいバージョンのインストール。

```.bash

$ brew update
	$ brew install rbenv
	$ cd ~/.rbenv/plugins/ruby-build/ && git pull origin master
	$ rbenv install --list
		 1.8.6-p383
		 1.8.6-p420
		 1.8.7-p249
		 1.8.7-p302
		 1.8.7-p334
		 1.8.7-p352
		 1.8.7-p357
		 1.8.7-p358
		 (中略）
		 2.2.0-dev
		 2.2.0-preview1
		 2.2.0-preview2
		 2.2.0-rc1
		 2.2.0　　　　　//これと
		 2.2.1
		 2.2.2
		 2.2.3
		 2.2.4
		 2.3.0-dev
		 2.3.0-preview1
		 2.3.0-preview2
		 2.3.0　　　　　//これをインストール
		 2.4.0-dev


```

基本的には2.2.0を使うんですが、将来的には2.4に以降する可能性もあるので一応インストールします。

```.bash
$ rvenv install 2.2.0
$ rvenv install 2.3.0

```

とすれば、`$ rbenv versions`を実行すれば、システムの入っているRubyのバージョンが確認できる。

```.bash
	$ rbenv versions
	  system
	* 2.1.4 (set by $HOME/.rbenv/version)
	  2.2.0
	  2.2.4
	  2.3.0

```

ひとまず安定して使いたいと思うので今回は、2.2.4をセットします。切り替えるには`$ rbenv global 2.2.4`とする。

```.bash
	$ rbenv global 2.2.4
	$ rbenv versions    //versionsでセットできたか確認。
	  system
	  2.1.4
	  2.2.0
	* 2.2.4 (set by $HOME/.rbenv/version)
	  2.3.0

```

### nvmとnode.jsをバージョンアップ

まずnvmのバージョン確認

```.bash
	$ nvm --version
	  0.24.0

```

.nvmの中に入り、gitで最新版をpullしてくる。


```.bash

	$ cd ~/.nvm
	$ git pull origin master
	$ source ~/.nvm/nvm.sh

```

`$git pull`したら、もう一度、バージョン確認。

```.bash

	$ nvm --version
	  0.25.4

```

これでOK。

```.bash

	$ nvm ls   //これでインストールされてるnodeのバージョンのリストが確認できる
->    v0.10.37
      v5.0.0
      v5.10.0
      system
node -> stable (-> v5.10.0) (default)
stable -> 5.10 (-> v5.10.0) (default)
iojs -> iojs- (-> N/A) (default)

	$nvm ls-remote //これでリモートに上がっているインストール出来るnodeのバージョンアップのリストが確認できる。
		v0.1.14
		v0.1.15
		(中略）
	   v0.12.11
	   v0.12.12
-> 	   v0.12.13　　//セットされてるnode
		 v4.0.0
		 v4.1.0
		 v4.1.1
		 v4.1.2
		 v4.2.0
		 v4.2.1
		 v4.2.2
		 v4.2.3
		 v4.2.4
		 v4.2.5
		 v4.2.6
		 v4.3.0
		 v4.3.1
		 v4.3.2
		 v4.4.0
		 v4.4.1
		 v4.4.2
		 v4.4.3
		 v5.0.0			
		 v5.1.0
		 v5.1.1
		 v5.2.0
		 v5.3.0
		 v5.4.0
		 v5.4.1
		 v5.5.0
		 v5.6.0
		 v5.7.0
		 v5.7.1
		 v5.8.0
		 v5.9.0
		 v5.9.1
		v5.10.0
		v5.10.1
		iojs-v1.0.0
		iojs-v1.0.1
		iojs-v1.0.2
		(中略）
		iojs-v2.3.4
		iojs-v2.4.0
		iojs-v2.5.0
		iojs-v3.0.0
		iojs-v3.1.0
		iojs-v3.2.0
		iojs-v3.3.0
		iojs-v3.3.1

```

ひとまず公式で、最新は5.0とあるので、5.0と一番最新の5.10.1をインストールする。

```.bash
	$nvm install 5.0
	$nvm install 5.10.1
	$nvm use 5.0

```

`$ nvm use`でnodeのバージョンが切り替えられるので、5.0に切り替える。

```.bash

	$ nvm ls
      v0.10.37
->    v5.0.0
      v5.10.0
      system

```

`$ nvm ls`で切り替えられているのを確認できればOK

### gulpのバージョンアップ

gulpのバージョンアップはnpmを使う。

```.bash

$ npm update -g gulp　//グローバルにインストールされているgulpのアップデートを実行
$ gulp -v //グローバルのgulpのバージョンが最新になっているか確認。

```

あとはプロジェクトのディレクトリのgulpも同じようにアップデートする。その際、末尾に`--save-dev`とオプションを付けて、package.jsonのバージョン情報を更新するようにする。

## まとめ
各ツールあまり古すぎるバージョンを使い続けるのも問題だけど、適度にバージョンアップ情報はチェックした方が無難だなって思った。