linux 安装 node 及环境配置

简介: linux 安装 node 及环境配置

每次安装完了就忘记了,再次安装的时候还得上网查,这次就记录下来,方便后面查看。

我用的环境 版本  CentOS 7

安装 node

下载地址 nodejs.cn/download/

下载 “Linux 二进制文件 (x64)”  对应的文件

wget https://npmmirror.com/mirrors/node/v16.16.0/node-v16.16.0-linux-x64.tar.xz 
复制代码

解压

tar -xvf node-v16.16.0-linux-x64.tar.xz node16
复制代码

在node16 文件夹下找到 bin目录,里面有 node文件可以直接执行

cd node16
./node
复制代码

这样执行比较麻烦,我们需要在任何地方,直接执行 node 命令。

全局执行 node 命令

首先看下命令的查找路径

echo $PATH
复制代码

输出,大概这样/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

你可以在其中任意位置加上软链,都可以全局访问。 比如 在 user/local/bin 上加软链

sudo ln -s /home/duhongwei/tools/node16/bin/node node
复制代码

接下来我们安装一个模块 PM2 npm install pm2 --location=global

安完了后执行pm2 发现找不到命令。这是为什么呢?我们查下全局安装的路径

npm config get prefix
复制代码

在我的环境中输出

/home/duhongwei/tools/node16
复制代码

PM2命令在 /home/duhongwei/tools/node16/bin 中 因为这个路径并不包含在 $PATH 中,所以找不到。

一个方法是把这个路径包含在 $PATH 中 ,打开 ~/.bash_profile修改 path

PATH=$PATH:/home/duhongwei/tools/node16
复制代码

另一个方法是修改全局安装目录

npm config set prefix /usr/local
复制代码

经过这样的设置,当全局安装的时候,模块文件会安装在 /usr/local/lib/node_modules 下面 命令会安装在 /usr/local/bin 下面,而/usr/local/bin包含在 $PATH里,所以立即全局有效了。 但是这样有一个小问题,就是全局安装的时候需要加上 sudo,因为/usr/local 需要 root权限。

所以,如果不需要考虑所有用户,只是自己用方便的话,用第一种方法为好。

sudo 执行 node 命令

经过上面的折腾,在自己用户下面用是没问题了。但是当 sudo node 的时候却提示找不到命令,这是为什么呢。

为了安全,用sudo 查找命令的路径和直接用 root 查找命令的路径不同,linux做了重置。

我们修改重置后的路径就可以了

sudo vi  /etc/sudoers
复制代码

找到这一行 Defaults   secure_path,在后面加上 node 命令的绝对路径,把 /home/duhongwei/tools/node16/bin,修改成你的实际路径就可以了。

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/home/duhongwei/tools/node16/bin
复制代码

最简单的安装方法

上面经过这么多步骤,是为了让你知道里面的原理,实际安装的时候,三步就可以。

  1. 下载 node 二进制文件,保证所有用户可读,可执行。
  2. 把 node,npm,npx 加软链接到 /usr/bin
  3. npm config set prefix /usr

经过这样三步后,所有用户都可以执行 node ,npm,npx 命令,sudo 也没有问题。 为什么sudo 也可以呢,因为在 sudo 重置的路径中黑夜包含 /user/bin

root 用户可能不好用,不过一般也不用root用户,所以没什么问题。如果让 root用户也可以,修改root下面的./bash_profile,把 /usr/bin 加到 PATH就好了。如果加前面有讲。

如果某个用户不好用,可能是这个用户修改了默认的查找路径,把 /user/bin加到查找路径就可以了

如果只是自己用的话,用下面的步骤,/home/duhongwei/bin是举例,实际换成你的路径。

  1. 下载 node 二进制文件
  2. 把 node,npm,npx 加软链接到 /home/duhongwei/bin
  3. npm config set prefix /home/duhongwei  (注意这里没有 /bin)
  4. 如果 /home/duhongwei/bin 没有在$PATH里的话,把  /home/duhongwei/bin 加到 $PATH

都是一样的,就是路径不一样,放在自己目录下的好处是执行的时候不用加 sudo ,而且也不影响别人。

目录
相关文章
|
23天前
|
资源调度 JavaScript Linux
【Azure 应用服务】本地Node.js部署上云(Azure App Service for Linux)遇到的三个问题解决之道
【Azure 应用服务】本地Node.js部署上云(Azure App Service for Linux)遇到的三个问题解决之道
|
14天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
5天前
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接
|
1天前
|
JavaScript Linux 开发者
一个用于管理多个 Node.js 版本的安装和切换开源工具
【9月更文挑战第14天】nvm(Node Version Manager)是一个开源工具,用于便捷地管理多个 Node.js 版本。其特点包括:版本安装便捷,支持 LTS 和最新版本;版本切换简单,不影响开发流程;多平台支持,包括 Windows、macOS 和 Linux;社区活跃,持续更新。通过 nvm,开发者可以轻松安装、切换和管理不同项目的 Node.js 版本,提高开发效率。
|
13天前
|
Ubuntu Linux Shell
Linux系统命令 安装和文件相关命令
本文档详细介绍了Linux系统中的常用命令,包括软件安装卸载命令如`dpkg`和`apt-get`,压缩与解压命令如`gzip`、`bzip2`和`xz`,以及`tar`命令用于打包和解包。此外还介绍了文件分割命令`split`,文件操作命令如`cat`、`head`、`tail`、`more`、`less`等,管道命令和`wc`、`grep`、`find`、`cut`、`sort`、`uniq`、`diff`等实用工具。最后,文档还讲解了文件属性相关的命令如`chmod`、`chown`、`chgrp`以及创建硬链接和软链接的`ln`命令。
|
19天前
|
Linux TensorFlow 算法框架/工具
在Linux上安装其他版本的cmake 或 升级cmake
在Linux上安装其他版本的cmake 或 升级cmake
28 2
|
19天前
|
人工智能 Linux 开发工具
Linux安装Taiyi stable-diffusion-webui
Linux安装Taiyi stable-diffusion-webui
|
20天前
|
Ubuntu Linux 虚拟化
安装Windows Linux 子系统的方法:适用于windows 11 版本
本文提供了在Windows 11系统上安装Linux子系统(WSL)的详细步骤,包括启用子系统和虚拟化功能、从Microsoft Store安装Linux发行版、设置WSL默认版本、安装WSL2补丁,以及完成Ubuntu的首次安装设置。
63 2
|
21天前
|
JavaScript NoSQL 前端开发