在 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}
相关推荐
java_logo4 小时前
MySQL Server Docker 容器化部署指南
linux·运维·数据库·docker·容器
誰能久伴不乏4 小时前
Linux文件套接字AF_UNIX
linux·服务器·c语言·c++·unix
w***74174 小时前
Nginx—Rewrite
java·数据库·nginx
a41324474 小时前
如何解决centos上oracle连接问题
linux·oracle·centos
h***34634 小时前
在linux(Centos)中Mysql的端口修改保姆级教程
linux·mysql·centos
星释4 小时前
Rust 练习册 97:Run-Length Encoding 压缩算法
java·linux·rust
2509_940880224 小时前
Linux(CentOS)安装 MySQL
linux·mysql·centos
k***1954 小时前
Nginx反向代理出现502 Bad Gateway问题的解决方案
运维·nginx·gateway
可爱又迷人的反派角色“yang”4 小时前
LVS+Keepalived群集
linux·运维·服务器·前端·nginx·lvs
Nerd Nirvana4 小时前
15个提升开发效率的VS Code插件推荐
linux·vscode·开发工具·嵌入式软件开发·插件使用·智能采集设备·边缘终端