HOME/Articles/

nodenvのインストール

Article Outline

pythonのpyenvと同様にNode.jsのバージョン管理システムのnodenvを使用する。
(両方インストールするくらいならanyenvを使えという説もあるが...)

他にもnvmやnodebrewなんてのもあるらしい。nodenvはディレクトリごとにローカルバージョンを設定できてとても便利なのでおススメ。
nodeenv(eが2つ)という超マイナーなのもあるけど、間違わないように。

Node.jsはリポジトリにバイナリパッケージが用意されているバージョンはバイナリインストールできる。用意されていないバージョンはソースからコンパイルされるが、必要なライブラリ類のインストールなど必要。ここでは手順は割愛。

インストール

準備

インストールに必要なモジュールをインストールする。インストール済みならスキップして可。

sudo apt install git

nodenv本体のインストール

nodenv本体をインストール。

export NODENV_ROOT=/proj/.nodenv    # 環境に合わせて修正してね
git clone git://github.com/nodenv/nodenv.git ${NODENV_ROOT}
git clone https://github.com/nodenv/node-build.git ${NODENV_ROOT}/plugins/node-build
git clone https://github.com/nodenv/nodenv-update.git ${NODENV_ROOT}/plugins/nodenv-update

nodenv-updateをインストールすることで、nodenv本体、各プラグインを nodenv update で行えるようになる。

~/.bashrcの編集

nodenvの設定のため、~/.bashrc に以下を追加。

export NODENV_ROOT=/proj/.nodenv    # 環境に合わせて修正してね
export PATH=$NODENV_ROOT/bin:$PATH
eval "$(nodenv init -)"

ここで設定を有効にするためにターミナルを開きなおす。

設定

nodenvでインストールできるバージョンの一覧を表示

nodenv install -l

バイナリインストールできるか確認したい場合は以下。
バイナリがなければソースからコンパイルされるが、時間がかかるのが嫌な場合に(大抵のバージョンはバイナリが用意されているようだ)。

grep -r `uname -m` ${NODENV_ROOT}/plugins/node-build/share/
# ただし、uname -m が x86_64 | amd64 | i686-64 のときはx64に置き換える

Node.jsのインストール

nodenv install 10.15.3 

デフォルトで使用するバージョンの設定

nodenv global 10.15.3

念のため指定したバージョンが実行されることを確認

node -v

仮想環境について

pyenvと異なり、nodenvは仮想環境をサポートしていない。
Node.jsはローカルモジュールのインストールが簡単なので、仮想環境を構築しなくても個々のディレクトリでローカルモジュールをインストールすることで仮想環境相当のことが実現できる。

npmのバージョンアップ

「npmが古い~」と言われる前にバージョンアップ。

npm install -g npm

ローカルで使用するバージョンの設定

ディレクトリ毎に使用するバージョンを指定するには(例えば、このディレクトリ下で作業するプロジェクトは9.11.1を使う、みたいな時)
そのディレクトリで以下のように実行する。
指定はそのディレクトリ直下だけでなく、その子ディレクトリ、孫ディレクトリ、・・・で有効。
shellを閉じても設定は残る。

nodenv local <バージョン名>

一時的なバージョンの切り替え

そのshellだけ使用するバージョンを変更したい場合は、以下のよう実行する。

nodenv shell <バージョン名>

別のターミナルでの実行には影響しない。

nodenvのバージョンアップ

Node.jsの新しいバージョンがリリースされ、それをインストールしたい場合など、nodenvのバージョンアップが必要。

nodenv-updateが入っていれば以下でイッパツ。

nodenv update

nodenv-updateが入っていない場合は以下のように各ディレクトリで git pull すればよい。

cd ${NODENV_ROOT}
git pull

cd ${NODENV_ROOT}/plugins/node-build/
git pull

実行後、ターミナルを開きなおす

その他

ちょっとだけ使い方一覧。

システムのNode.jsを使いたい場合

nodenv [global | local | shell] system

現在の状態で使用されるバージョン/仮想環境を確認

nodenv version

nodenvでインストールされているNode.jsのバージョンを確認

nodenv versions 

現在の状態で使用されるバージョンの先頭に「*」 が付く。

nodenv自体のバージョン確認

nodenv --version

nodenvで使用できるコマンドの確認

nodenv commands

nodenvのヘルプの表示

nodenv help

# 各コマンドのヘルプを表示するには以下
nodenv help <command>