在 centos 上安装 nodejs 网上有很多的教程,但是我感觉他们讲的和我想象的有点区别。所以我决定自己走一遍这个流程并记录下来。安装 nodejs 有两种方式,这两种方式总的来说有利有弊。

一、源码安装

首先我们要去 nodejs官网 找到源码安装包的下载地址。我们只需要关注 Linux Binaries(二进制包) 与 Source Code(源码包) 这两部分就好了。

centos 上两种安装 nodejs 的方式

如果你对于 nodejs 的版本没有特定要求,直接使用官网给出的下载链接就好了,但是如果你和我一样需要特定的 nodejs 版本。可以通过 https://nodejs.org/dist/ 来找到更多版本的 nodejs 下载地址。以 node v4.2.3 为例,nodejs官网提供了不同系统的不同安装包:

nodejs不同的安装包

下载我们所需要的 nodejs 源码包。

wget https://nodejs.org/dist/v4.2.3/node-v4.2.3.tar.gz  

下载 nodejs 源码包

解压下载下来的安装包。

tar -zxvf node-v4.2.3.tar.gz  

切换到目录下进行配置。

cd node-v4.2.3/  
./configure

解压下载下来的安装包

如果在这个过程中出上面这种错误,那么很有可能是服务器上没有安装 gccgcc-c++。nodejs 需要这两款软件去编译。在编译 nodejs 前我们需要安装这两款软件。

yum install gcc gcc-c++ -y  

安装 gcc gcc-c++

如果安装完成 gccgcc-c++ 需要再次执行 ./configure 命令。如果上一次执行 ./configure没有报错的话直接跳过这个步骤。

再次执行 configure

执行 make && make install 命令编译 nodejs,这一步会需要多一点时间。根据服务器性能的不同,所消耗的时间也不一致。

执行 make && make install

完成以上所有步骤我们就能在 centos 上使用编译后的 nodejs 了。

二、安装包(二进制)安装

怎么区分安装包是二进制安装包还是需要编译的源码安装包?在我看来,其实只要判断包名上是否带有系统名称就可以了。比如 node-v4.2.3-linux-x64.tar.gz 就是 linux 对应的源码包,node-v4.2.3-sunos-x64.tar.gz 就是 sunos 所对应的源码包。

使用二进制的方式开起来要比编译的方式要简单一点,但是也有不是很方便的地方。

下载我们所需要的 nodejs 源码包。

wget https://nodejs.org/dist/v4.2.3/node-v4.2.3-linux-x64.tar.gz  

下载 nodejs 源码包

解压下载下来的安装包。

tar -zxvf node-v4.2.3-linux-x64.tar.gz  

解压下载下来的安装包。

运行下载过的 nodejs。

cd node-v4.2.3-linux-x64/bin  
./node -v

运行下载过的 nodejs

我们能够成功的看到 nodejs 被运行,但是这样还是有点问题。我们无法再服务器的其他位置自由的使用我们通过安装包方式安装的 nodejs。这和在 windows 上的情况是一样的,原因就是我们没有将当前的目录添加进系统的环境变量(PATH)。

安装包安装 nodejs 缺少环境变量

这就不得不提到在 centos 上配置环境变量的几种方式。

方式 代码 缺点
在 shell 上更改 $PATH="$PATH:/你的文件路径" 再重新打开 shell, 原来的 PATH 会失效
修改 /etc/profile vim /etc/profile; 在尾部加入 export PATH="$PATH:/你的文件路径" 不够安全所有用户都可以使用,需要重启服务器
修改 /root/.bashrc vim /root/.bashrc; 在尾部加入 export PATH="$PATH:/你的文件路径" 需要重启服务器

重启服务器在很多时候往往都是『最后的法宝』,如果不是真的有需要,一般不可以重启服务器的。 仅仅为了安装软件而重启服务器就更没有必要了。其实修改 /etc/profile 的这种方式是可以避免重启的 让 profile 文件立即生效。至于这两种方式哪一种更好一点,就因人而异了。

完。