nを利用したnodeの環境構築
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.jsonとpackage-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