centos7 安装 nodejs 的几种方式

本贴最后更新于 2028 天前,其中的信息可能已经时移世改

前言

由于工作需要 node,所以在 centos7 上安装 nodejs,其间入了几次坑,现在将实践中的几种方式记录,备忘。

node 二进制安装

进入 nodejs 官网下载页面,https://nodejs.org/en/download/
QQ20180930124251png
上图中可见,nodejs 官方分为两大分支,LTS 为长期支持分支,Current 为最新更新分支,具体信息大家可以百度,我这里不做重述。
我这里选择 Linux Binaries (x86/x64) x64 二进制包 https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xz

下载二进制压缩包:

cd /usr/local/src
wget https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xz

解压缩包:

xz -d node-v8.12.0-linux-x64.tar.xz
tar -xvf node-v8.12.0-linux-x64.tar.xz
mv node-v8.12.0-linux-x64 /usr/local/node

到此为止,nodejs 就算是安装好了一半,可以执行如下命令测试:

/usr/local/node/bin/node -v 

上面虽说可以使用了,可是每次运行都加上 /usr/local/node/bin/ 有点难受,所以我们接下来配置环境变量,打开 /etc/profile ,在最下面加入如下代码:

vi /etc/profile

# set for nodejs
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH

是刚刚配置的环境变量生效:

source /etc/profile

验证环境变量是否配置好:

node -v 
npm -v

执行以上操作后,nodejs 算是安装好了,但是当试图安装一个全局包的时候你可能会遇到 EACCES 错误。这个错误表明你没有当前 npm 用来存储全局包命令目录的写权限。
可以通过下面两种方式之一来修复解决这个问题:

方式一:修改 npm 默认目录的权限

找到 npm 目录路径:

npm config get prefix

大多数系统,目录一般是 /usr/local

警告: 如果路径显示的是 /usr,直接采用方式二:修改 npm 默认目录的位置
修改 npm 目录的拥有者为当前用户:

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

使用这个命令同时修改了 npm 下面子目录和其他工具命令(lib/node_modules,bin,and share)

方式二:修改 npm 默认目录的位置

有时候并不希望修改 npm 默认目录的拥有者,因为这样可能会导致一些其他不可预期的问题,所以我们可以采用修改 npm 目录位置。
我这里使用的是用户根目录下面创建隐藏目录:

创建一个目录用于全局包安装:

mkdir ~/.npm-global

配置 npm 使其使用新的目录:

npm config set prefix '~/.npm-global

打开或者新建~/.profile 文件,并添加目录路径

export PATH=~/.npm-global/bin:$PATH

更新系统变量:

source ~/.profile

测试,下载一个 cnpm:

npm install -g cnpm --registry=https://registry.npm.taobao.org

**ps:**更多关于 cnpm 的信息请查看 https://npm.taobao.org/

到目前为止就完成了 centos7 上 nodejs 基于官方二进制包的安装

NVM 安装

NVM(Node version manager)顾名思义,就是 Node.js 的版本管理软件,可以轻松的在 Node.js 各个版本间切换

安装 nvm:

curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh  | bash
source ~/.bash_profile

查看可以安装的版本:

nvm list-remote

安装:

nvm  install  [版本号]

查看已安装的版本:

nvm  list

切换版本:

nvm  use  [版本号] 

设置默认版本:

nvm  alias  [版本号] 
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1083 引用 • 3461 回帖 • 287 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖 • 1 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    138 引用 • 268 回帖 • 199 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...