Centos下Nodejs+npm环境-部署记录

公司的一个项目上线,需要用到Nodejs和npm环境,这里记录下安装过程,方便回看同时供大家参考。

1)yum安装方式(版本比较老点,v5.12.0 + 3.8.6)

需要在centos中添加epel和remi源

添加epel源(如果提前安装了其他的epel-release-7-11.noarch,则需要先卸载它,否则会和下面的冲突)
64位:
[root@node-test src]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
===========================================================================================
32位:
[root@node-test src]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
===========================================================================================

导入key:
[root@node-test src]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

添加remi源
[root@node-test src]# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
[root@node-test src]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi

安装完成后,执行
[root@node-test src]# curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -
[root@node-test src]# yum -y install nodejs

[root@node-test src]# node -v
v5.12.0

[root@node-test src]# npm -v
3.8.6

nodejs环境如上就已经部署好了,此时就可以执行*.js程序了。

2)tar包安装(制定版本安装,v8.1.0+5.0.3)

下载地址:https://nodejs.org/dist/
这里下载v8.1.0

[root@node-test src]# wget https://nodejs.org/dist/v8.1.0/node-v8.1.0-linux-x86.tar.gz
[root@node-test src]# tar -zvxf node-v8.1.0-linux-x86.tar.gz
[root@node-test src]# mv node-v8.1.0-linux-x86 /usr/local/node-v8.1.0
[root@node-test src]# ls /usr/local/node-v8.1.0
bin  CHANGELOG.md  include  lib  LICENSE  README.md  share

接着通过下面两个命令建立node和npm的软连接,在较高级版本的nodejs中自带了npm,所以这里不需要另行下载。 
[root@node-test src]# ln -s /usr/local/node-v8.1.0/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
[root@node-test src]# ln -s /usr/local/node-v8.1.0/bin/node /usr/local/bin/node

上面操作类似于将node和npm添加进系统环境变量,但是在后期安装head插件过程中出现报错,问题是在Path路径中找不到指定文件
为此解决这个问题,直接再修改/etc/profile,添加node的目录到Path即可,具体见下面这个 
[root@node-test src]# vim /etc/profile
......
export PATH=$PATH:/usr/local/node-v8.1.0/bin
[root@node-test src]# source /etc/profile

查看版本,检查是否安装成功
[root@node-test src]# node -v 
v8.1.0
[root@node-test src]# npm -v
5.0.3

====================可能出现的报错====================
报错1:
/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

因为64位系统中安装了32位程序。解决方法:
[root@node-test src]# yum install glibc.i686

报错2:
node: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

解决办法:
[root@node-test src]# yum whatprovides libstdc++.so.6
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * epel: mirrors.yun-idc.com
 * extras: ftp.sjtu.edu.cn
 * updates: ftp.sjtu.edu.cn
libstdc++-4.4.7-23.el6.i686 : GNU Standard C++ Library
Repo        : base
Matched from:
Other       : libstdc++.so.6

然后执行
[root@node-test src]# yum install libstdc++-4.4.7-23.el6.i686

==================解决npm install过慢问题==================
如果后期在使用npm install安装过程中出现了长时间停留在fetchMetadata sill 一直不动的现象,那应该是npm源出了问题。
这时候可以切换到国内的npm源来解决这个问题,执行下面两个命令即可(大概测试了下,速度提升了10-100倍之多)
[root@node-test src]# npm config set registry https://registry.npm.taobao.org 
[root@node-test src]# npm config get registry