anyenvからnodenv入れるときにややハマりした話

# anyenvを入れる
node.js触る環境作ろうとしたとき、予てより気になってたanyenvから導入しようと思い立った。
ndenvとかでバージョン管理出来る概念を知った後にanyenvの存在を知って
「あ、ここがゴールやん」と気付いた。
まとめてバージョン管理便利。

Tipsはたくさんあるので一気にメモ。

```shell
git clone https://github.com/riywo/anyenv ~/.anyenv

export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"

exec $SHELL -l
```
アップデートも簡単に出来るようにプラグインも入れる

```shell
mkdir -p $(anyenv root)/plugins
git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update

anyenv update
```

# anyenvをおさわりする
目的はnode.jsだけど何が入れられるのか一応見てみる

```shell
anyenv install -l
Available **envs:
  crenv
  denv
  erlenv
  exenv
  goenv
  hsenv
  jenv
  luaenv
  ndenv
  nenv
  nodenv
  phpenv
  plenv
  pyenv
  rbenv
  Renv
  sbtenv
  scalaenv
  swiftenv
```
なんかたくさんある。ほー、Swiftとかluaも入れられるのかー。
読み方ってノーデンブとかスイフテンブとかでいいのかしら、NO臀部。

#node.jsを使えるようにする前に
前も使ってたしndenv入れよう〜と思ったら
なんかndenv以外にnenvとかnodenvとかある、全部node.jsっぽくね？
どれ入れたらいいのか分からないので各リポジトリを覗いてみる。

| リポジトリ       |       last update |
|:-----------------|------------------:|
| [nenv](https://github.com/ryuone/nenv)             |       Updated 2 years ago |
| [ndenv](https://github.com/riywo/ndenv)           |       Updated 3 years ago |
| [nodenv](https://github.com/nodenv/nodenv)          |       Updated 4 days ago |

ndenvのとこにはこんなことが書いてあった。
***Please consider to use nodenv. ndenv repository is not maintained actively.***

なんと親切なアナウンス。
関係ないですが古い情報に対してこの情報は古いですよってアナウンスしてくれるのって
ものすごく親切だし大事なことですよね。
調べ物してて**最新情報！2011年！**とかなってるとイラッとするし。
「※この情報は2011年時点での〜」みたいな一文あるだけでも優しさを感じられるのですが。
※この記事は2018年12月時点での情報です。

ということでnodenv一択のようでした。

# nodenvを入れようとしたら…

```shell
anyenv install nodenv
exec $SHELL -l
```
ここでトラブル発生

```shell
nodenv install -l
nodenv: no such command 'install'
```

えぇ〜？うそぉ〜ん
調べてみたけどイマイチよく分からない。

```shell

nodenv -v
nodenv 1.2.0-3-gd5fb564
```
nodenvは入ってんだけどなぁ

```shell

nodenv -h
Usage: nodenv <command> [<args>]

Some useful nodenv commands are:
   commands    List all available nodenv commands
   local       Set or show the local application-specific Node version
   global      Set or show the global Node version
   shell       Set or show the shell-specific Node version
   rehash      Rehash nodenv shims (run this after installing executables)
   version     Show the current Node version and its origin
   versions    List all Node versions available to nodenv
   which       Display the full path to an executable
   whence      List all Node versions that contain the given executable

See `nodenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/nodenv/nodenv#readme
```

なんかinstallコマンドがねーんだが。
installどこ〜？？

#偶然見つけた解決策
```shell

cd ~/.anyenv/envs/nodenv/plugins/node-build
ls -la
drwxr-xr-x. 7 shin shin  218 Dec 28 02:35 .
drwxr-xr-x. 5 shin shin   74 Dec 28 02:35 ..
drwxr-xr-x. 2 shin shin   70 Dec 28 02:35 bin
-rw-r--r--. 1 shin shin 3379 Dec 28 02:35 CONDUCT.md
drwxr-xr-x. 8 shin shin  163 Dec 28 02:35 .git
-rw-r--r--. 1 shin shin   32 Dec 28 02:35 .gitignore
-rwxr-xr-x. 1 shin shin  357 Dec 28 02:35 install.sh
-rw-r--r--. 1 shin shin 1073 Dec 28 02:35 LICENSE
-rw-r--r--. 1 shin shin 1675 Dec 28 02:35 package.json
-rw-r--r--. 1 shin shin 6003 Dec 28 02:35 package-lock.json
-rw-r--r--. 1 shin shin 8878 Dec 28 02:35 README.md
drwxr-xr-x. 4 shin shin   54 Dec 28 02:35 script
drwxr-xr-x. 3 shin shin   24 Dec 28 02:35 share
drwxr-xr-x. 6 shin shin 4096 Dec 28 02:35 test
-rw-r--r--. 1 shin shin  179 Dec 28 02:35 .travis.yml
```
なんか**install.sh**とかいう物体を発見
実行してみる

```shell

sh install.sh
```
**なんも起こらない**

```shell
nodenv -h
Usage: nodenv <command> [<args>]

Some useful nodenv commands are:
   commands    List all available nodenv commands
   local       Set or show the local application-specific Node version
   global      Set or show the global Node version
   shell       Set or show the shell-specific Node version
   install     Install a Node version using node-build
   uninstall   Uninstall a specific Node version
   rehash      Rehash nodenv shims (run this after installing executables)
   version     Show the current Node version and its origin
   versions    List all Node versions available to nodenv
   which       Display the full path to an executable
   whence      List all Node versions that contain the given executable

See `nodenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/nodenv/nodenv#readme

```
**出た**

## Hello nodenv
原因はよく分からないけどanyenv経由で入れたやつがnode-build内のファイルの取りこぼしを起こしてた？っぽい。
全ての環境で起きるのか不明ですが自分とこで発生したので足跡を残します。
ひとまずこれで使えるようになった。

```shell

nodenv install -l | grep 10.4
  0.10.4
  0.10.40
  0.10.41
  0.10.42
  0.10.43
  0.10.44
  0.10.45
  0.10.46
  0.10.47
  0.10.48
  10.4.0
  10.4.1
```

よかったよかった。