在之前,写过一篇文章(https://www.alongw.cn/archives/1012),但是有点久了,加上有一些内容或许已经变更,因此决定重新写一篇
下载并安装
nvm 的官方仓库地址:https://github.com/nvm-sh/nvm
可以直接从仓库的 Releases 下载相关版本,但是我比较懒,为了更新合下载方便,我选择直接使用 git 克隆仓库
我希望把他安装在系统的根目录,以便所有用户都可以使用
cd / # 切换到根目录
克隆代码(由于当前账号无权限直接操作跟目录,所以使用 sudo 提权)
ubuntu@VM-0-12-ubuntu:/$ sudo git clone https://github.com/nvm-sh/nvm.git
Cloning into 'nvm'...
remote: Enumerating objects: 9094, done.
remote: Counting objects: 100% (9094/9094), done.
remote: Compressing objects: 100% (3216/3216), done.
remote: Total 9094 (delta 5825), reused 8980 (delta 5774), pack-reused 0
Receiving objects: 100% (9094/9094), 3.36 MiB | 27.71 MiB/s, done.
Resolving deltas: 100% (5825/5825), done.
ubuntu@VM-0-12-ubuntu:/$
重命名文件夹 来隐藏他 将他从 nvm
改成 .nvm
sudo mv ./nvm/ ./.nvm
修改 .nvm
文件夹的权限,以便所有用户都能读写和执行
sudo chmod 777 -R ./.nvm/
现在 nvm 已经安装成功了 接下来就是需要配置环境变量
为所有用户配置全局变量
如果你希望所有用户都可用,你需要在 /etc/bash.bashrc
中配置全局 Bash 配置文件
sudo vim /etc/bash.bashrc
在文件末尾加入
export NVM_DIR="/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
注意第一行变量中的 nvm 路径,我这里安装是在 根目录下的 .nvm
文件夹中,如果你的是 nvm-0.39.1
这种其他名字的文件夹(比如手动从 Release 下载的) 或者有嵌套文件夹,那么请修改为你自己刚刚将 nvm 下载到的位置
重新加载全局配置文件
source /etc/bash.bashrc
为单个用户配置全局变量
如果你不希望所有用户都可以用,而是只有单独的用户可以用,或是你将他安装在了用户目录中,作为用户独立的软件,那么和配置全局变量的步骤一样
编辑用户主目录下 .bashrc
文件(没有则新建)
vim ~/.bashrc
同样,在文件的末尾加上
export NVM_DIR="/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
注意第一行变量中的 nvm 路径,我这里安装是在 根目录下的 .nvm
文件夹中,如果你的是 nvm-0.39.1
这种其他名字的文件夹(比如手动从 Release 下载的) 或者有嵌套文件夹,那么请修改为你自己刚刚将 nvm 下载到的位置
重新加载用户的配置文件
source ~/.bashrc
使用 nvm 安装 node
我这里安装 18.x 版本的为例
ubuntu@VM-0-12-ubuntu:/$ nvm install 18
Downloading and installing node v18.17.1...
Downloading https://nodejs.org/dist/v18.17.1/node-v18.17.1-linux-x64.tar.xz...
################################################################################################################################ 100.0%Computing checksum with sha256sum
Checksums matched!
Now using node v18.17.1 (npm v9.6.7)
Creating default alias: default -> 18 (-> v18.17.1)
ubuntu@VM-0-12-ubuntu:/$ nvm use 18
Now using node v18.17.1 (npm v9.6.7)
ubuntu@VM-0-12-ubuntu:/$
查看已安装版本
nvm ls
安装node
nvm install <version>
例(安装版本为16.14.0的node)
nvm install 16.14.0
国内服务器如果速度慢可以更换为淘宝源
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/
切换node版本
nvm use <version>
例(切换为1919.810版本的node)
nvm use 1919.810
一些小问题
比起 npm 我更倾向于使用 yarn 但是由于正常安装出来的 yarn 的 bin
文件不在环境变量中,导致 yarn 安装出来的包无法使用全局命令。因此我们需要手动添加
安装 yarn
ubuntu@VM-0-12-ubuntu:/$ npm install yarn -g
added 1 package in 895ms
用 yarn 安装全局包(这里以 pm2 为例)
ubuntu@VM-0-12-ubuntu:/$ yarn global add pm2
yarn global v1.22.19
[1/4] Resolving packages...
warning pm2 > @pm2/io > @opencensus/propagation-b3 > uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
warning pm2 > @pm2/io > @opencensus/core > uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
warning pm2 > @pm2/io > @opencensus/propagation-b3 > @opencensus/core > uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "pm2@5.3.0" with binaries:
- pm2
- pm2-dev
- pm2-docker
- pm2-runtime
Done in 12.36s.
ubuntu@VM-0-12-ubuntu:/$
使用 pm2
ubuntu@VM-0-12-ubuntu:/$ pm2
Command 'pm2' not found, did you mean:
command 'pmi' from deb powermanagement-interface (0.3.21)
command 'wm2' from deb wm2 (4+svn20090216-4build1)
command 'pm' from deb powerman (2.3.5-1build2)
command 'tpm2' from deb tpm2-tools (5.2-1build1)
command 'gm2' from deb gm2 (4:11.2.0-1ubuntu1)
command 'pmg' from deb python3-pymatgen (2022.0.17+dfsg1-1build1)
command 'pms' from deb pms (0.42-1build4)
command 'pmw' from deb pmw (1:4.50-1)
command 'pom2' from deb libpod-pom-perl (2.01-3)
command 'pmc' from deb linuxptp (3.1.1-3)
Try: sudo apt install <deb name>
ubuntu@VM-0-12-ubuntu:/$
没有找到命令,我们需要添加到环境变量
yarn 的软件目录位于当前账号主目录的文件夹中 按照上方安装时的教程将他添加进 bashrc 配置文件中(根据实际情况修改)
export PATH=$PATH:/home/ubuntu/.yarn/bin
添加后刷新配置文件,运行正常
解决特殊网络环境下连接质量的问题
npm 换源
npm config get registry // 查看当前源地址
npm config set registry https://registry.npm.taobao.org // 淘宝源
npm config set registry https://registry.npmmirror.com // 淘宝源(新域名)
npm config set registry https://mirrors.huaweicloud.com/repository/npm // 华为源
npm 设置代理
npm config set proxy=http://127.0.0.1:11451
npm config set https-proxy=https://127.0.0.1:11451
npm config delete proxy
npm config delete https-proxy
yarn 换源
yarn config get registry // 查看当前源地址
yarn config set registry https://registry.npm.taobao.org // 淘宝源
yarn config set registry https://registry.npmmirror.com // 淘宝源(新域名)
yarn config set registry https://mirrors.huaweicloud.com/repository/npm // 华为源
yarn 设置代理
yarn config set proxy http://127.0.0.1:11451
yarn config set https-proxy https://127.0.0.1:11451
yarn config delete proxy
yarn config delete https-proxy
nvm 换源
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/ // 淘宝源