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