在Linux Mint上使用asdf来安装Node.js

我想做的事情

以前我一直使用n来管理Node.js的版本,但每次都会忘记使用方法…。所以当我在寻找类似的工具时,我发现了asdf。试用之后发现它很好用,并且还涵盖了其他语言(如Go、Ruby、Python等,还有更多)。由于可以满足需求,我决定转换使用,从而不再需要rbenv、pyenv等类似工具。

本文仅保留了安装 Node.js 的步骤。

前提条件

请作为参考,Linux Mint是一个与Ubuntu兼容的发行版。

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

尝试一下

1. 安装 asdf

我会按照公式的步骤进行操作。在执行git clone命令时,将删除指定的分支。如果不指定,则会获取最新的分支。

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

如果在bash中使用asdf

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

执行asdf命令来确认是否已安装。

asdf -v
version: v0.7.0

如果使用fish来使用asdf。

因为我正在使用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中执行命令,因此我在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命令以确认是否已安装。

asdf -v
version: v0.7.0

如果遇到无法正常运行的情况,请重新启动终端。

安装与asdf插件和依赖关系相关的包。

建议在公式的插件依赖项中安装的包中会提供需要额外安装的最佳选项。官方推荐使用apt命令,但我们将其更改为apt-get。

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

请安装推荐版本(LTS)的Node.js。您可以在官方页面上确认当前版本。

undefined

确认版本后,安装 Node.js。

※ 只是使用 asdf plugin-add nodejs 时,安装命令(asdf install nodejs 10.15.2)会出错。我搜索了一下发现需要按照 asdf-nodejs 中的步骤进行安装。不过奇怪的是,在安装 Ruby 或者 Python 时并不需要这样做…

# 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

为安装的版本设置路径,以便能够使用。

asdf global nodejs 10.15.2
asdf reshim nodejs

确认已安装。

node -v
v10.15.2

确认一下是否可使用npm命令。

npm-v
6.4.1

额外的礼物

当要安装yarn时。

你可以像往常一样使用npm命令在全局安装。

npm i -g yarn

确认是否可以使用 yarn 命令。

yarn -v
1.13.0

如果您在asdf上安装了不同版本的Node.js,您需要重新安装它。
例如,您需要分别安装10.15.2版本和10.15.3版本的yarn。

当想要升级 asdf 版本的时候

asdf update

當想要升級 Node.js 的版本時,使用 asdf。

查看可安装的版本列表。

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 版本已经发布了呢。更新得真快啊,可惜我没看过更新计划……

# 指定されたバージョンをインストール
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
# 指定のバージョンが使えるようにパスを通す
asdf global nodejs 11.11.0
asdf reshim nodejs
node -v
v11.11.0

我的感觉

    • 開発言語のバージョン管理をするのであれば asdf は鉄板という印象。

 

    • 複数言語を使う人には尚オススメ。

 

    というよりも、バージョン管理をしなくても asdf を入り口にインストールする方が分かりやすいのではないか
bannerAds