在 CentOS 上安装 Node 记解决一些场景问题

安装

  1. 假如我们想将 Node 安装到服务器的指定目录,那么可以先进入到该目录,比如 /opt/node

2.然后确保服务器上已经安装了 curltar工具,可以使用 curl --versiontar --version来检查是否已经安装。如果没有安装,可以使用下面的命令进行安装(-y 选项表示在安装期间自动回答 yes):

bash 复制代码
sudo yum install -y curl tar

3.然后从 Node 官方上的 Download页面中找到对应服务器系统的版本,复制链接,再回到服务器执行以下命令:

bash 复制代码
sudo curl -o node.tar.gz https://nodejs.org/dist/v18.16.0/node-v18.16.0.tar.gz

在这里 -o选项用于指定输出文件名或者位置

4.然后在当前目录下解压缩 node 压缩包:

bash 复制代码
sudo tar -xzvf node.tar.gz

5.将 Node 中的可执行文件目录路径添加到系统的配置环境变量:

bash 复制代码
export PATH=/opt/node/node-v14.16.1-linux-x64/bin:$PATH

这就将 Node 中可执行文件的目录路径添加到了环境变量中。

⚠️注意

通过上述指令设置的环境变量并不是永久生效的,它只会在当前终端窗口生效,并且在关闭该终端后就会失效。如果需要设置永久生效的环境变量,有两种方法:

5.1. 所有用户登陆后都可以使用。将环境变量添加到 /etc/profile

bash 复制代码
export PATH=/opt/node/node-v14.16.1-linux-x64/bin:$PATH

保存并退出编辑,然后执行 source /etc/profile命令让配置生效。这样,所有用户登陆后都可以使用该环境变量。

5.2.只需要在当前用户下生效。将环境变量添加到 ~/.bashrc或者 ~/.zshrc

bash 复制代码
export PATH=/opt/node/node-v14.16.1-linux-x64/bin:$PATH

保存并退出编辑,然后执行 source ~/.bashrc命令让配置生效。

6.验证 Node 和 npm 是否都已经正确安装并且 PATH 也是否更新:

如果有正确展示对应的版本,则表示安装成功了。

修改 npm 安装源

主要还是因为国内环境的问题,一些依赖包的安装是非常慢的,而且经常可能会超时,所以一般情况下我们会更换到国内的镜像源来提高安装的速度。

一般选择淘宝镜像源。以下是两种修改的方法:

  1. 使用命令行工具修改
    打开终端,输入以下命令来配置 npm 的淘宝镜像:
bash 复制代码
npm config set registry https://registry.npmmirror.com

这条命令将把 npm registry 配置为淘宝镜像。

如果您希望切换回原来的官方源,可以使用以下命令:

bash 复制代码
npm config set registry https://registry.npmjs.org/

2.手动修改 .npmrc 文件

您也可以手动编辑 ~/.npmrc 文件,将其中的 registry 项修改为您选择的源的地址。例如,在使用淘宝源时,您需要将 ~/.npmrc 文件中的 registry 修改为:

bash 复制代码
registry=https://registry.npmmirror.com

如果您需要更改回官方源,则需要修改为以下内容:

bash 复制代码
registry=https://registry.npmjs.org/

问题

在不使用sudo时可以使用npm,使用sudo之后提示命令没找到

如果在使用 sudo npm 安装工具时,出现 "npm command not found" 的错误提示,可能是因为系统的环境变量配置问题导致的。

当我们在不使用 sudo 命令的情况下以普通用户身份运行 npm 命令时,npm 是可以被正常执行的。这是因为普通用户已经将 npm 的安装路径包含在了他们的 PATH 环境变量中。

而当我们使用 sudo 命令时,它使用的是 root 用户的环境,该用户不一定拥有与我们普通用户相同的环境配置,这就可能导致 npm 命令无法被找到。

为了解决这个问题,您可以通过以下命令,将当前用户的 ~/.npmrc 文件复制到 root 用户的 home 目录中:

或者,您也可以添加一个环境变量来指定 npm 安装路径,使得 sudo 也可以访问到 npm 命令:

bash 复制代码
sudo env "PATH=$PATH" npm install <package> -g

这会将当前用户的 PATH 环境变量注入到 sudo 的命令中,使得 sudo 命令也可以找到正确路径下的 npm 命令。

将 npm 全局安装目录的所有者更改为当前用户

有这个需求的原因是在服务器上,由于当前用户的权限不足,而导致 npm 安装一些工具失败,但是使用 sudo 又提示 npm 未找到(原因可以看「一些常识)

bash 复制代码
sudo chown -R $USER $(npm config get prefix)/{lib/node_modules,bin,share}
相关推荐
vvw&1 小时前
Linux 中的 .bashrc 是什么?配置详解
linux·运维·服务器·chrome·后端·ubuntu·centos
tao3556672 小时前
树莓派免密登录(vs code/cursor)
linux·嵌入式硬件·ssh
是阿建吖!2 小时前
【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
linux·网络·udp
Clownseven3 小时前
SFTP服务器搭建实战:腾讯云 Linux 上的快速安全文件传输方案
linux·服务器·腾讯云
chuanauc3 小时前
记录一次在 centos 虚拟机 中 安装 Java环境
java·linux·centos
企鹅侠客4 小时前
Bash与Zsh与Fish:在Linux中你应该使用哪个Shell
linux·开发语言·bash·zsh·fish
JAVA坚守者4 小时前
Redis Desktop Manager 使用前的准备工作
redis·centos·网络配置·redis manager·安全设置
是阿建吖!5 小时前
【Linux | 网络】socket编程 - 使用TCP实现服务端向客户端提供简单的服务
linux·网络·tcp/ip
渡我白衣5 小时前
Linux操作系统之进程间通信:管道概念
linux
Amelio_Ming5 小时前
C++开源项目—2048.cpp
linux·开发语言·c++