📝

nを利用したnodeの環境構築

2024/05/03に公開

nodeが導入されていないlinuxにnodeの環境を構築する手順。
新規に環境構築する際に毎回忘れるのでメモ。

WSLのUbuntu-22.04での構築例だが、ほかの環境でもapt / yum / homebrewを適宜読み替えればあまり変わらないはず。

aptでインストール可能なパッケージのリストを更新

aptでパッケージをインストールするための準備。
apt installする際にインストールするパッケージのバージョンをaptに教えてあげる。

sudo apt update

aptを使ってnodeとnpmをインストールする

まずは、aptを使ってnode本体と、nodeのパッケージ管理ツールであるnpmをインストールする。

sudo apt install nodejs npm

nのインストール

npmを使ってnodeのバージョン管理ツール、「n」をインストールする。

npm install n -g

グローバルインストールとローカルインストール

-gをつけるとグローバルにインストールされる。
私の環境では/usr/local/lib/node_modules/配下にnがインストールされ、実行ファイルへのシンボリックリンクが/usr/local/bin/配下に置かれた。
/usr/local/binはパスが通っているので任意の場所でnを実行できるようになる。

-gをつけない場合、ローカル(=そのディレクトリのみ)にインストールされる。
この場合はnpm install nを実行したディレクトリにnode_modulesフォルダが作成される。
また、同じ場所にpackage.jsonpackage-lock.jsonが作成される。
この場合は基本的にパスが通っていないのでnを実行してもcommand not foundになる。

npxを利用してnpx nとすることで利用できるが、不便なのでグローバルにインストールすればよいと思う。ただし、 グローバルにインストールした場合はsudoが必要。

nを使ってnodeをインストールする

利用可能なバージョンの確認

n ls-remoteでインストール可能なnodeのバージョンを確認できる。

インストール

n install [バージョン]で指定したバージョンのnodeをインストールできる。
n install latestまたはn latestで最新のnodeをインストールできる。
n install ltsまたはn ltsで最新の安定版nodeをインストールできる。

なお、インストール済みのnodeバージョンはn lsで確認できる。
単にnと入力するとインストール済みのnodeのバージョンを切り替えられる。

確認

node -v

でそれぞれnodeとnpmのバージョンがnを使ってインストールしたバージョンになっているか確認する。

インストールしたバージョンと違うバージョンが表示された場合は、aptを利用してインストールしたnodeが参照されてしまっている。
nを利用してnodeをインストールした時に以下のような文章が出力されたと思う。

If "node --version" shows the old version then start a new shell, or reset the location hash with:
hash -r  (for bash, zsh, ash, dash, and ksh)
rehash   (for csh and tcsh)

指示に従って

hash -r

または

rehash

を実行すれば参照先がnを利用したnodeになる。

aptを使ってインストールしたnodeを削除する

ここまでの手順で、aptを利用してインストールしたnode(私の環境では/usr/bin/node)とnを利用してインストールしたnode(/usr/local/bin/node)の2つのnodeがインストールされているはず。また、nを使ってnodeをインストールすると同時にnpmもインストールされるため、npmも2つインストールされている。(/usr/bin/npm/usr/local/bin/npm)

nを使えば簡単にnodeのバージョンを切り替えられるので、aptを利用したnodeは削除する。

sudo apt purge nodejs npm

なお、apt removeとすると設定ファイルは残される。apt purgeすると設定ファイルごとごっそり消される。今回はaptを使ってインストールしたnodeには今後用はないのでpurgeしてサヨナラする。

Discussion