Ubuntu 22.04下nvm/npm/yarn的安装及换源
最近遇到了一个需要旧版本Node才能启动的项目,但是实在不想卸载Win上的node版本,于是在Ubuntu 22.04虚拟机上使用nvm来安装旧版本Node,便于Node版本切换,并且日后也方便封装成docker镜像。
nvm在Github:
安装nvm
在Github上可以找到nvm的安装方法,目前v0.39.3
的安装方法如下:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
运行后会在~/.nvm
下安装nvm。由于安装程序将导出nvm环境变量的代码写入了~/.bashrc
,所以可以运行source ~/.bashrc
使nvm环境变量生效。
nvm换源
运行nvm ls-remote
可以列出所有可供安装的Node版本,但是也可能没有任何输出,这是网络环境的原因。所以我们需要给nvm换源。
在nvm.sh
中,程序定义了NVM_NODEJS_ORG_MIRROR
变量来指定从哪里获取Node二进制程序。所以只需要在nvm.sh
中改变该变量的值即可。使用cat -n nvm.sh | grep NVM_NODEJS_ORG_MIRROR
查到该变量在1983行定义:
root@ipangbo-server:~/.nvm# cat -n nvm.sh | grep NVM_NODEJS_ORG_MIRROR 1983 node-std) nvm_echo "${NVM_NODEJS_ORG_MIRROR:-https://nodejs.org/dist}" ;; 2977 nvm_err "\$NVM_NODEJS_ORG_MIRROR: '${NVM_NODEJS_ORG_MIRROR}'" 4214 unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \
使用vim打开该文件:vi nvm.sh
,输入:set number
显示行号,输入:1983
来跳转到1983行,把该变量中的网址替换为:
https://mirrors.aliyun.com/nodejs-release/
替换后,再次运行nvm ls-remote
,nvm已经可以输出所有node的二进制版本。使用诸如nvm install v16.19.0
的命令来安装Node;使用nvm ls
来列出已经安装的Node版本;使用诸如nvm use v16.19.0
的命令来切换Node版本。
npm更新与换源
Node自带的npm往往不是最新,要更新npm,可以使用安装npm的命令。但在此之前,npm仍然需要换源才能顺利下载。
要查看当前使用的npm源,运行npm config get registry
。可以看到默认的npm源来自https://registry.npmjs.org/
。要替换成阿里源,运行:
npm config set registry http://registry.npmmirror.com
再次运行npm config get registry
,可以看到输出已变为阿里源。
接下来,使用安装npm的命令来更新npm:
npm install -g npm
可以在下载的时候观察到,npm正从registry.npmmirror.com
下载。
yarn安装及换源
yarn在一定程度上是npm的替代品,却需要从npm安装:
npm install -g yarn
yarn的命令与npm相似,安装好后,可以使用yarn config get registry
查询到yarn的默认源为https://registry.yarnpkg.com
。若要换源,可以使用:
yarn config set registry http://registry.npmmirror.com