mintsu's blog

Linux(Ubuntu)にnodenvを導入する方法

2020-07-22 16:00:00
フロントエンド

Linux(Ubuntu)にnodenvを導入する

LinuxにNodeを入れたときにも、nodenvでバージョン管理ができたほうが楽なので、Linuxでのnodenvの入れ方について備忘録的にまとめておきます。
環境によってNodeのバージョンを切り分けられるものは nodebrew, ndenv, nodenvなど複数あるのですが、
プロジェクトごとに切替可能で、最新のものであるnodenvを今回は使います。

nodenv

Macに導入するときの記事はこちらに以前記載しています。
nodenvを導入する方法 | mintsu's blog

目次

環境

OS: Ubuntu 20.04

今回Ubuntuを使っていますがCentOSなどでも同様の手順になると思います。

導入手順

Linuxでnodenvの導入をするには、githubからチェックアウトすることで導入できます。

nodenvのclone

$ git clone https://github.com/nodenv/nodenv.git ~/.nodenv

PATHの追加

PATHを追加します。

$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bashrc

初期化のためnodenv initコマンドを打つ必要がありますが、ログイン時に自動的に読まれるようにbashrcに記述しておきます

$ echo 'eval "$(nodenv init -)"' >> ~/.bashrc

bashrcを再読込します。

$ source ~/.bashrc

node-buildの導入

gitからnode-buildをcloneしてnode-buildを入れます。

$ git clone https://github.com/nodenv/node-build.git $(nodenv root)/plugins/node-build

検証

検証
設定は完了しましたが、設定がうまく行っているか検証してくれるスクリプトがあるのでそちらで確認します。

nodenv-doctorというのを使います。

$ curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash
Checking for `nodenv' in PATH: /usr/local/bin/nodenv
Checking for nodenv shims in PATH: OK
Checking `nodenv install' support: /usr/local/bin/nodenv-install (node-build 4.6.1)
Counting installed Node versions: none
  There aren't any Node versions installed under `/Users/{ユーザ名}/.nodenv/versions'.
  You can install Node versions like so: nodenv install 2.2.4
Auditing installed plugins: OK

上記のような出力で、OKが出ていれば問題有りません

nodenvでnodeの最新版を入れる

インストールできる node のすべてのバージョンを表示

$ nodenv install -l
Available versions:
~ 省略 ~
14.2.0
14.3.0
14.4.0
14.5.0
~ 省略 ~

大量に出てきますが、今回は現時点で最新の14.5.0 を入れていきます

nodenv install

$ nodenv install 14.5.0

バージョンを指定してnodenv installコマンドを打つことで任意のバージョンのnodeをインストールすることができます

任意のバージョンのnodeを使う

インストールまでは完了しましたが、このままではまだnodeの利用ができません。
使うnodeのバージョンを下記コマンドで選択します

$ nodenv global 14.5.0
$ node --version
v14.5.0

nodenv global {nodeのバージョン} で任意のnodeのバージョンに切り替えることができます。

特定のディレクトリでバージョンを切り替える

プロジェクトによって違うnodeのバージョンを使いたいということはよくあると思います。
そんなときにも、ディレクトリごとにnodeのバージョンを切り替えが可能です。

例えばprojectAというディレクトリ配下では12.1.0というバージョンを使いたい場合は初回に下記の様にコマンドを打ちます

cd projectA
nodenv local 12.1.0

nodenv local {任意のnodeのバージョン} というコマンドで切り替えられます。

このコマンドを打つとそのディレクトリ配下に.node-versionというファイルが作られて以後はそこに書いてあるバージョンのnodeが使われるようになります。
nodenvを使っている前提であれば.node-versionもgitなどにはコミットしてしまうと管理が楽になりますね。

さいごに

nodenvを使うとnodeのバージョン管理が非常に楽になります。
nodeのバージョンは結構上がるので、常に最新のnodeを使っているといつのまにか古いプロジェクトが動かなくなってるなんてこともあるかと思います。
nodenv使っておけばバージョンも明示しておけますし、自動で切り替えられるので非常に便利ですね。