Linux下准备Node.js环境(Linux Binaries版)

在Node.js的官方下载网站上,有Linux Binaries(.tar.gz)的包可供下载,但是却没有说明文档。
这里整理了Linux Binaries(.tar.gz)的一份安装说明。

Ubuntu为例,其他Linux环境类似:

目标

  • 可运行Node.js
  • 针对国内网络环境,添加淘宝cnpm的支持
  • 添加nodemon,以便调整代码后自动重启
  • 添加开机自启动

基本环境部署

获取并解压Node.js二进制文件包

1
2
3
4
5
6
# 进入安装包目标路径,根据个人喜好放置
cd /home/software
# 获取安装包
wget https://nodejs.org/dist/v4.2.2/node-v4.2.2-linux-x64.tar.gz
# 解压
tar xvzf node-v4.2.2-linux-x64.tar.gz

设置环境变量

这样,并不能在系统任意位置执行node或者npm.
需要将路径添加到PATH中。
编辑/etc/profile,修改PATH环境变量:

1
export PATH=$PATH:/home/software/node-v4.2.2-linux-x64/bin

这样,除了node主程序和自带的npm,每次通过npm -g安装的包,一般都能用非sudo访问了。

添加sudo对npm的访问:

1
sudo ln -s /home/software/node-v4.2.2-linux-x64/bin/npm /usr/local/bin/

安装cnpm

1
2
sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
sudo ln -s /home/software/node-v4.2.2-linux-x64/bin/npm /usr/local/bin/

之后就可以用cnpm代替npm进行包管理了,速度会快很多。

安装nodemon

1
sudo cnpm install -g nodemon

由于已经设置过环境变量,此时可以直接运行nodemon了。

自启动相关

一般会把自启动命令添加到/etc/rc.local中,这样,系统重启时就会运行。
但是之前在/etc/profile中设置的环境变量,在/etc/rc.local中并不起作用。
我的做法是,在/usr/local/bin中添加nodenodemon这些程序的软链接:

1
2
sudo ln -s /home/software/node-v4.2.2-linux-x64/bin/node /usr/local/bin/
sudo ln -s /home/software/node-v4.2.2-linux-x64/bin/nodemon /usr/local/bin/

然后,在/etc/rc.local中便可以设置开机自启动了:

1
2
3
4
5
6
7
8
# 进入要启动程序的目录
cd /home/ubuntu/workspace/test
# 获取当前日期,格式为:20151105
DATE=$(date +%Y%m%d)
# 启动程序,并将日志计入当天日期的文件:log_20151105.txt
sudo nodemon app.js >> log_${DATE}.txt &
# 恢复执行目录
cd -