nodejs
anyenv
nodenv

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


anyenvを入れる

node.js触る環境作ろうとしたとき、予てより気になってたanyenvから導入しようと思い立った。

ndenvとかでバージョン管理出来る概念を知った後にanyenvの存在を知って

「あ、ここがゴールやん」と気付いた。

まとめてバージョン管理便利。

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

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

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

exec $SHELL -l

アップデートも簡単に出来るようにプラグインも入れる

mkdir -p $(anyenv root)/plugins

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

anyenv update


anyenvをおさわりする

目的はnode.jsだけど何が入れられるのか一応見てみる

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
Updated 2 years ago

ndenv
Updated 3 years ago

nodenv
Updated 4 days ago

ndenvのとこにはこんなことが書いてあった。

Please consider to use nodenv. ndenv repository is not maintained actively.

なんと親切なアナウンス。

関係ないですが古い情報に対してこの情報は古いですよってアナウンスしてくれるのって

ものすごく親切だし大事なことですよね。

調べ物してて最新情報!2011年!とかなってるとイラッとするし。

「※この情報は2011年時点での〜」みたいな一文あるだけでも優しさを感じられるのですが。

※この記事は2018年12月時点での情報です。

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


nodenvを入れようとしたら…

anyenv install nodenv

exec $SHELL -l

ここでトラブル発生

nodenv install -l

nodenv: no such command 'install'

えぇ〜?うそぉ〜ん

調べてみたけどイマイチよく分からない。


nodenv -v
nodenv 1.2.0-3-gd5fb564

nodenvは入ってんだけどなぁ


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どこ〜??


偶然見つけた解決策


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とかいう物体を発見

実行してみる


sh install.sh

なんも起こらない

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内のファイルの取りこぼしを起こしてた?っぽい。

全ての環境で起きるのか不明ですが自分とこで発生したので足跡を残します。

ひとまずこれで使えるようになった。


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

よかったよかった。