前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 使用 nvm 安装 node

Linux 使用 nvm 安装 node

作者头像
阿龙w
发布2023-10-18 15:45:00
3K0
发布2023-10-18 15:45:00
举报
文章被收录于专栏:阿龙的笔记

在之前,写过一篇文章(https://cloud.tencent.com/developer/article/2186375),但是有点久了,加上有一些内容或许已经变更,因此决定重新写一篇

下载并安装

nvm 的官方仓库地址:https://github.com/nvm-sh/nvm

可以直接从仓库的 Releases 下载相关版本,但是我比较懒,为了更新合下载方便,我选择直接使用 git 克隆仓库

我希望把他安装在系统的根目录,以便所有用户都可以使用

代码语言:javascript
复制
cd /  # 切换到根目录

克隆代码(由于当前账号无权限直接操作跟目录,所以使用 sudo 提权)

代码语言:javascript
复制
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

代码语言:javascript
复制
sudo mv ./nvm/ ./.nvm

修改 .nvm 文件夹的权限,以便所有用户都能读写和执行

代码语言:javascript
复制
sudo chmod 777 -R ./.nvm/

现在 nvm 已经安装成功了 接下来就是需要配置环境变量

为所有用户配置全局变量

如果你希望所有用户都可用,你需要在 /etc/bash.bashrc 中配置全局 Bash 配置文件

代码语言:javascript
复制
sudo vim /etc/bash.bashrc

在文件末尾加入

代码语言:javascript
复制
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 下载到的位置

重新加载全局配置文件

代码语言:javascript
复制
source /etc/bash.bashrc

为单个用户配置全局变量

如果你不希望所有用户都可以用,而是只有单独的用户可以用,或是你将他安装在了用户目录中,作为用户独立的软件,那么和配置全局变量的步骤一样

编辑用户主目录下 .bashrc 文件(没有则新建)

代码语言:javascript
复制
vim ~/.bashrc

同样,在文件的末尾加上

代码语言:javascript
复制
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 下载到的位置

重新加载用户的配置文件

代码语言:javascript
复制
source ~/.bashrc

使用 nvm 安装 node

我这里安装 18.x 版本的为例

代码语言:javascript
复制
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:/$ 
查看已安装版本
代码语言:javascript
复制
nvm ls
安装node
代码语言:javascript
复制
nvm install <version>

例(安装版本为16.14.0的node)

代码语言:javascript
复制
nvm install 16.14.0

国内服务器如果速度慢可以更换为淘宝源

代码语言:javascript
复制
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/
切换node版本
代码语言:javascript
复制
nvm use <version>

例(切换为1919.810版本的node)

代码语言:javascript
复制
nvm use 1919.810

一些小问题

比起 npm 我更倾向于使用 yarn 但是由于正常安装出来的 yarn 的 bin 文件不在环境变量中,导致 yarn 安装出来的包无法使用全局命令。因此我们需要手动添加

安装 yarn

代码语言:javascript
复制
ubuntu@VM-0-12-ubuntu:/$ npm install yarn -g

added 1 package in 895ms

用 yarn 安装全局包(这里以 pm2 为例)

代码语言:javascript
复制
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

代码语言:javascript
复制
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 配置文件中(根据实际情况修改)

代码语言:javascript
复制
export PATH=$PATH:/home/ubuntu/.yarn/bin

添加后刷新配置文件,运行正常

解决特殊网络环境下连接质量的问题

npm 换源

代码语言:javascript
复制
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 设置代理

代码语言:javascript
复制
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 换源

代码语言:javascript
复制
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 设置代理

代码语言:javascript
复制
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 换源

代码语言:javascript
复制
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/ // 淘宝源
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-9-13 2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载并安装
  • 为所有用户配置全局变量
  • 为单个用户配置全局变量
  • 使用 nvm 安装 node
    • 查看已安装版本
      • 安装node
        • 切换node版本
        • 一些小问题
        • 解决特殊网络环境下连接质量的问题
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档