查看: 110|回复: 1

Linux下卸载与源码编译安装Node.js及npm配置详解

[复制链接]
发表于 2 小时前 | 显示全部楼层 |阅读模式
在开发环境中,经常需要彻底卸载旧版Node.js并重新编译安装新版,同时处理npm依赖。本文以Homestead虚拟机和阿里云CentOS为例,记录完整的卸载、编译安装、npm配置以及淘宝镜像加速的步骤。

一、卸载npm和Node.js

首先彻底移除npm。如果npm本身已安装,执行:
  1. sudo npm uninstall npm -g
复制代码

然后找到Node.js安装路径。使用 which node 定位到node二进制所在目录,例如 /usr/local/bin/node,那么Node.js的相关文件通常位于该目录的上层。手动删除所有Node.js添加的文件:
  1. cd /usr/local
  2. rm -rf bin/node bin/node-waf include/node lib/node lib/pkgconfig/nodejs.pc share/man/man1/node.1
复制代码

如果是Ubuntu系统并通过apt-get安装,可以直接用包管理器卸载:
  1. sudo apt-get remove nodejs
复制代码

二、下载并编译安装Node.js

前往Node.js官网下载源码。本例使用v6.3.1版本,下载地址为 https://nodejs.org/dist/v6.3.1/node-v6.3.1.tar.gz 。一般将第三方软件安装到 /usr/local 目录下。

使用wget下载:
  1. sudo wget https://nodejs.org/dist/v6.3.1/node-v6.3.1.tar.gz
复制代码

解压并进入目录:
  1. tar xzvf node-v6.3.1.tar.gz && cd node-v6.3.1
复制代码

配置、编译和安装:
  1. ./configure
  2. make
  3. sudo make install
复制代码

编译过程耗时较长,请耐心等待。安装完成后验证版本:
  1. node -v
复制代码
输出应显示 v6.3.1。

三、处理Windows虚拟机(Homestead)中的npm安装问题

在真实Linux服务器上,直接运行 npm install 即可按package.json安装依赖。但在Windows系统上通过Vagrant搭建的Homestead虚拟机中,由于文件系统共享机制,npm install 会因符号链接创建失败而报错。解决方法是在安装时添加 --no-bin-links 参数:
  1. npm install --no-bin-links
复制代码

四、配置淘宝npm镜像加速

国内网络环境常遇到npm下载慢的问题。可通过两种方式使用淘宝镜像。

方式一:安装cnpm(淘宝npm镜像客户端)
  1. npm install -g cnpm --registry=https://registry.npm.taobao.org
复制代码
之后所有npm命令可用cnpm替代,例如 cnpm install,cnpm install --global gulp。

方式二:直接设置npm registry为淘宝镜像
  1. npm config set registry https://registry.npm.taobao.org
复制代码
此方式无需额外工具,后续所有npm命令都从淘宝源拉取包。

需要注意:使用Laravel等PHP框架时,常需gulp等前端构建工具。安装gulp可以通过cnpm或npm + 淘宝源:
  1. cnpm install --global gulp
复制代码
  1. npm config set registry https://registry.npm.taobao.org
  2. npm install --global gulp
复制代码

经过上述步骤,Node.js和npm环境就重置完成了。在Homestead或阿里云CentOS上均可顺利运行项目依赖安装和前端构建。
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层

Re: Linux下卸载与源码编译安装Node.js及npm配置详解

感谢楼主分享这么详细的教程!正好最近也在折腾Homestead里的node环境,之前一直没找到靠谱的卸载方法,怕删不干净。你写的步骤很清晰,尤其是手动删除文件路径那块,比我自己乱翻目录靠谱多了。 另外,有个小问题想请教一下:现在Node.js已经出到18.x了,编译源码的话,./configure这一步会不会因为系统库版本太低而报错?比如CentOS 7上编译高版本可能需要更新gcc。还有就是如果使用nvm管理版本,是不是能省去手动卸载的麻烦?比较好奇你倾向源码编译还是直接用工具管理~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-13 15:35 , Processed in 0.039827 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部