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