書いてから気づいたけど、WSL特有の事情とか一切無いから、ただUbuntuでNode.js入れただけになっちゃった。

[ Windows 10 (64bit) / Ubuntu 18.04.4 LTS / anyenv 1.1.1 / Node.js v13.12.0 ]

Node.jsは anyenv を使ってインストールする。今後バージョンを切り替えたくなると思うし、Pythonも入れるかもしれないから。

あと、以下の記事の影響で、ここでは anyenv の設定を .bash_profile じゃなくて .bashrc に書く。なので anyenv 公式のインストール方法と少し違う。

  1. anyenvをインストール
  2. nodenvをインストール
  3. Node.jsをインストール

anyenvをインストール

以下コマンドで anyenv をインストール。

git clone https://github.com/anyenv/anyenv ~/.anyenv
echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bashrc
~/.anyenv/bin/anyenv init
結果
# Load anyenv automatically by adding
# the following to ~/.bash_profile:

eval "$(anyenv init -)"

~/.bash_profileeval "$(anyenv init -)" を追記するよう言われる。

が、ここでは前述の通り ~/.bashrc に追記して、シェルを再起動。

echo 'eval "$(anyenv init -)"' >> ~/.bashrc
exec $SHELL -l
結果
ANYENV_DEFINITION_ROOT(/home/napoporitataso/.config/anyenv/anyenv-install) doesn't exist. You can initialize it by:
> anyenv install --init

言われた通り、anyenv install --init を実行する。

anyenv install --init
結果
Manifest directory doesn't exist: /home/napoporitataso/.config/anyenv/anyenv-install
Do you want to checkout ? [y/N]: y  # 入力
Cloning https://github.com/anyenv/anyenv-install.git master to /home/napoporitataso/.config/anyenv/anyenv-install...
Cloning into '/home/napoporitataso/.config/anyenv/anyenv-install'...
remote: Enumerating objects: 48, done.
remote: Total 48 (delta 0), reused 0 (delta 0), pack-reused 48
Unpacking objects: 100% (48/48), done.

Completed!

終わったら、インストールできたか以下コマンドで確認。

anyenv -v
結果
anyenv 1.1.1

nodenvをインストール

anyenv を使って nodenv をインストールする。

anyenv install nodenv
exec $SHELL -l
nodenv -v
結果
nodenv 1.3.2+2.2578d8d

Node.jsをインストール

nodenv install --list を叩いて、インストール可能なNode.jsのバージョンの一覧を見たところ、最新バージョンは 13.12.0 だった。

ここではそれを入れることにする……

nodenv install 13.12.0
結果
Downloading node-v13.12.0-linux-x64.tar.gz...
-> https://nodejs.org/dist/v13.12.0/node-v13.12.0-linux-x64.tar.gz
Installing node-v13.12.0-linux-x64...
Installed node-v13.12.0-linux-x64 to /home/napoporitataso/.anyenv/envs/nodenv/versions/13.12.0

nodenv: default-packages file not found

……と思ったら、何か言われた。default-packages ファイルが無いらしい。

下記の記事によると、nodenv のルートフォルダに default-packages というファイルを置いて、中に任意のパッケージ名を書いておくと、nodenv install でNode.jsをインストールした時に一緒にグローバルインストールしてくれるらしい。

複数のNode.jsを使い分けてて yarn を使う人とかは、これを活用してるようだ。

自分は特に初期インストールしたいものは無いので、ここでは以下コマンドでカラのファイルを作成するだけ。

touch $(nodenv root)/default-packages

nodenv root は、nodenv のルートフォルダのパスを出力できるコマンド。

……

それで肝心のNode.jsの方だけど、試しに nodenv versions を叩いてみたら 13.12.0 と表示された。インストール自体は成功していたらしい。

nodenv global で、グローバルのバージョンを 13.12.0 に設定する。

nodenv global 13.12.0
exec $SHELL -l

ここまでやったら、node コマンドと npm コマンドが使えるようになったか確認する。

node -v
npm -v
結果
v13.12.0
6.14.4

これでNode.jsのインストールは完了。

.bashrc に設定を書いてるので、シェルスクリプト内でも同様に node npm コマンドが使えるはず。