LoginSignup
5
4

More than 5 years have passed since last update.

Linux Mint に asdf で Node.js をインストールする

Posted at

やりたいこと

いままで Node.js のバージョン管理には n を使っていたのですが毎回使い方を忘れてしまう...。そこで似たようなツールがないか調べていたときに asdf を見つけました。試しに使ってみたところ使い勝手が良く、他の言語(Go、Ruby、Python など。もっと沢山あります)もカバーしていることもあり、副次的に rbenv, pyenv なども使わなくて良くなりそうなので乗り換えることにしました。

本記事では Node.js をインストールした手順のみ残しておきます。

前提環境

実施した環境ということでご参考までに。Linux Mint は Ubuntu 互換のディストリビューションです。

カテゴリ ソフトウェア バージョン
OS Linux Mint 19 Tara Cinnamon x64 (Ubuntu 18.04 LTS ベース)

やってみた

1. asdf をインストール

公式の手順を見ながら進めます。git clone するときにブランチを指定していますが削除します。指定しなければ最新が入ります。

bash
git clone https://github.com/asdf-vm/asdf.git ~/.asdf # ブランチを指定しなければ最新が入ります

bashasdf を使う場合

bash
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc
echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc

asdf コマンドを実行してインストールされたかを確認。

bash
asdf -v
実行結果
version: v0.7.0

fishasdf を使う場合

私は fish を使っているのでこちらを実行。

fish
echo 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fish
mkdir -p ~/.config/fish/completions; and cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions

・・・ただ、bash から :arrow_up: のコマンドを実行する必要があったので bash で下記を実行しました。

bash
# fish で asdf を使う。
echo 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fish
mkdir -p ~/.config/fish/completions
cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions

asdf コマンドを実行してインストールされたかを確認。

bash
asdf -v
実行結果
version: v0.7.0

うまく動かないときはターミナルを再起動してください。

2. asdf のプラグインと依存関係があるパッケージをインストール

公式の Plugin Dependencies でプラグインの依存関係としてインストールしておいた方が良いパッケージが案内されているため追加でインストールします。公式は apt コマンドですが apt-get に変えています。

bash
sudo apt-get install -y \
  automake autoconf libreadline-dev \
  libncurses-dev libssl-dev libyaml-dev \
  libxslt-dev libffi-dev libtool unixodbc-dev

3. asdf で Node.js をインストール

Node.js のバージョンは推奨版(LTS)をインストールします。現在のバージョンが何かは公式のページで確認します。

バージョンが確認できたら Node.js をインストールします。

asdf plugin-add nodejs だけだとインストールするときのコマンド(asdf install nodejs 10.15.2)でエラーになります。調べてみたところ、asdf-nodejs に記載されている手順でインストールする必要があります。Ruby や Python では必要なかったんですけどね...。

bash
# apt の Node.js はアンインストール
sudo apt-get remove -y nodejs

# asdf-nodejs で案内されているパッケージを追加
sudo apt-get install -y gpg dirmngr

# Node.js をインストールできるように asdf のプラグインを追加(asdf-nodejs.git から引っ張ってくる)
asdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs.git
bash $HOME/.asdf/plugins/nodejs/bin/import-release-team-keyring

# asdf でバージョンを指定して Node.js をインストール
asdf install nodejs 10.15.2
実行結果
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3884    0  3884    0     0   3606      0 --:--:--  0:00:01 --:--:--  3606
gpg: 2019年02月28日 21時43分40秒 JSTに施された署名
gpg:                RSA鍵DD8F2338BAE7501E3DD5AC78C273792F7D83545Dを使用
gpg: "Rod Vagg <rod@vagg.org>"からの正しい署名 [不明の]
gpg:                 別名"Rod Vagg <r@va.gg>" [不明の]
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg:          この署名が所有者のものかどうかの検証手段がありません。
主鍵フィンガープリント: DD8F 2338 BAE7 501E 3DD5  AC78 C273 792F 7D83 545D
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17.7M  100 17.7M    0     0  3226k      0  0:00:05  0:00:05 --:--:-- 4436k
node-v10.15.2-linux-x64.tar.gz: OK

インストールしたバージョンにパスを通して使えるようにします。

bash
asdf global nodejs 10.15.2
asdf reshim nodejs

インストールされたのか確認。

bash
node -v
実行結果
v10.15.2

npm コマンドも使えるようになっているか確認。

bash
npm-v
実行結果
6.4.1

おまけ

yarn をインストールしたいとき

通常通り npm コマンドでグローバルにインストールできます。

bash
npm i -g yarn

yarn コマンドが使えるようになっているか確認。

bash
yarn -v
実行結果
1.13.0

ただし、asdf で別のバージョンの Node.js をインストールした場合はインストールし直しになります。
例: 10.15.2yarn10.15.3yarn は別々にインストールする必要があります。

asdf のバージョンを上げたいとき

bash
asdf update

asdf で Node.js のバージョンを上げたいとき

インストール可能なバージョンの一覧を確認します。

bash
asdf list-all nodejs 
実行結果
0.10.0
0.10.1
0.10.2
0.10.3
0.10.4
0.10.5
0.10.6
0.10.7
==================== 中略 ====================
10.15.2
10.15.3
11.0.0
11.1.0
11.2.0
11.3.0
11.4.0
11.5.0
11.6.0
11.7.0
11.8.0
11.9.0
11.10.0
11.10.1
11.11.0

いま見ると 10.15.3 リリースされてますね。アップデート早いなぁ :sleeping:Release スケジュール 見てない...

bash
# 指定されたバージョンをインストール
asdf install nodejs 11.11.0
実行結果
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4229    0  4229    0     0   4532      0 --:--:-- --:--:-- --:--:--  4527
gpg: 2019年03月07日 04時30分52秒 JSTに施された署名
gpg:                RSA鍵A48C2BEE680E841632CD4E44F07496B3EB3C1762を使用
gpg: "Ruben Bridgewater <ruben@bridgewater.de>"からの正しい署名 [不明の]
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg:          この署名が所有者のものかどうかの検証手段がありません。
主鍵フィンガープリント: A48C 2BEE 680E 8416 32CD  4E44 F074 96B3 EB3C 1762
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 19.4M  100 19.4M    0     0  3902k      0  0:00:05  0:00:05 --:--:-- 4741k
node-v11.11.0-linux-x64.tar.gz: OK
bash
# 指定のバージョンが使えるようにパスを通す
asdf global nodejs 11.11.0
asdf reshim nodejs
node -v
実行結果
v11.11.0

所感

  • 開発言語のバージョン管理をするのであれば asdf は鉄板という印象。
  • 複数言語を使う人には尚オススメ。
  • というよりも、バージョン管理をしなくても asdf を入り口にインストールする方が分かりやすいのではないか :smile_cat:
5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4