在Ubuntu系统上安装Node.JS的教程


Posted in Javascript onOctober 15, 2015

Node.js 在实时的 Web应用上采用了基于 WebSocket 的推送技术。这意味着什么样的革命性?Well,在经过了20多年的基于无状态的请求-返机制的无状态交互之后,我们终于有了实时的,双向连接的web应用,客户端和服务器端都可以发起通信,能够自由地交换数据。与此形成鲜明对比的是传统的 web响应模式,客户端总是主动发起通信而服务端被动返回。此外,这些都是基于运行在标准80端口上的开放Web组件(HTML、CSS和JS)。

可能有人会说,我们已经使用 Flash 和 Java Applet 的形式很多年了——但实际上,这些方式只是使用网络将数据传递到客户端上的沙箱环境。他们都是隔离运行的,而且经常操作到需要额外的权限之类的非标准端口。

凭借其独特的优势,Node.js的现在已经在许多著名公司的产品中起到了关键作用。

Node.js 的主要思路是:使用非阻塞的,事件驱动的 I/O 操作来保持在处理跨平台 (across distributed devices) 数据密集型实时应用时的轻巧高效。这听起来有点绕口。

它的真正含义是,Node.js 不是一个即将主导Web开发的世界的银弹级的平台。相反,它是一个满足特别需求的平台。你肯定不会希望使用 Node.js 去做 CPU密集型操作。事实上,使用它进行繁重的计算等于摒弃 Node 几乎所有的优点。Node 真正的亮点在于建设高性能,高扩展性的互联网应用——因为它能够处理庞大的并且高吞吐量的并发连接。

基础系统安装
Node 在 Linux,Macintosh,Solaris 这几个系统上都可以完美的运行,linux 的发行版本当中使用 Ubuntu 相当适合。这也是我们为什么要尝试在 ubuntu 15.04 上安装 Node.js,当然了在 14.04 上也可以使用相同的步骤安装。

1) 系统资源
Node.js 所需的基本的系统资源取决于你的架构需要。本教程我们会在一台 1GB 内存、 1GHz 处理器和 10GB 磁盘空间的服务器上进行,最小安装即可,不需要安装 Web 服务器或数据库服务器。

2) 系统更新
在我们安装 Node.js 之前,推荐你将系统更新到最新的补丁和升级包,所以请登录到系统中使用超级用户运行如下命令:

# apt-get update

3) 安装依赖
Node.js 仅需要你的服务器上有一些基本系统和软件功能,比如 'make'、'gcc'和'wget' 之类的。如果你还没有安装它们,运行如下命令安装:

# apt-get install python gcc make g++ wget

下载最新版的Node JS v4.0.0
访问链接 Node JS Download Page 下载源代码.
在Ubuntu系统上安装Node.JS的教程
复制其中的最新的源代码的链接,然后用wget 下载,命令如下:

# wget https://nodejs.org/download/rc/v4.0.0-rc.1/node-v4.0.0-rc.1.tar.gz

下载完成后使用命令tar 解压缩:

# tar -zxvf node-v4.0.0-rc.1.tar.gz

在Ubuntu系统上安装Node.JS的教程
安装 Node JS v4.0.0
现在可以开始使用下载好的源代码编译 Node.js。在开始编译前,你需要在 ubuntu server 上切换到源代码解压缩后的目录,运行 configure 脚本来配置源代码。

root@ubuntu-15:~/node-v4.0.0-rc.1# ./configure

在Ubuntu系统上安装Node.JS的教程
现在运行命令 'make install' 编译安装 Node.js:

root@ubuntu-15:~/node-v4.0.0-rc.1# make install

make 命令会花费几分钟完成编译,安静的等待一会。

验证 Node.js 安装
一旦编译任务完成,我们就可以开始验证安装工作是否 OK。我们运行下列命令来确认 Node.js 的版本。

root@ubuntu-15:~# node -v

v4.0.0-pre
在命令行下不带参数的运行node 就会进入 REPL(Read-Eval-Print-Loop,读-执行-输出-循环)模式,它有一个简化版的emacs 行编辑器,通过它你可以交互式的运行JS和查看运行结果。
在Ubuntu系统上安装Node.JS的教程
编写测试程序
我们也可以写一个很简单的终端程序来测试安装是否成功,并且工作正常。要做这个,我们将会创建一个“test.js” 文件,包含以下代码,操作如下:

root@ubuntu-15:~# vim test.js
var util = require("util");
console.log("Hello! This is a Node Test Program");
:wq!

现在为了运行上面的程序,在命令行运行下面的命令。

root@ubuntu-15:~# node test.js

在Ubuntu系统上安装Node.JS的教程
在一个成功安装了 Node JS 的环境下运行上面的程序就会在屏幕上得到上图所示的输出,这个程序加载类 “util” 到变量 “util” 中,接着用对象 “util” 运行终端任务,console.log 这个命令作用类似 C++ 里的cout

结论
就是这些了。如果你刚刚开始使用 Node.js 开发应用程序,希望本文能够通过在 ubuntu 上安装、运行 Node.js 让你了解一下Node.js 的大概。最后,我们可以认为我们可以期待 Node JS v4.0.0 能够取得显著性能提升。

Javascript 相关文章推荐
jquery 问答知识整理
Feb 11 Javascript
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
Apr 06 Javascript
滚动图片效果 jquery实现回旋滚动效果
Jan 08 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
Jul 15 Javascript
javascript实现确定和取消提示框效果
Jul 10 Javascript
smartcrop.js智能图片裁剪库
Oct 14 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
Jan 26 Javascript
jQuery 限制输入字符串长度
Jun 20 Javascript
vue.js $refs和$emit 父子组件交互的方法
Dec 20 Javascript
JavaScript比较同一天的时间大小实例代码
Feb 09 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
Jul 27 Javascript
关于Vue Router的10条高级技巧总结
May 06 Vue.js
jquery实现简单实用的弹出层效果代码
Oct 15 #Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 #Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
Oct 15 #Javascript
JS实现选中当前菜单后高亮显示的导航条效果
Oct 15 #Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
Oct 15 #Javascript
JS利用cookie记忆当前位置的防刷新导航效果
Oct 15 #Javascript
如何实现移动端浏览器不显示 pc 端的广告
Oct 15 #Javascript
You might like
php垃圾代码优化操作代码
2010/08/05 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
JQuery CSS样式控制 学习笔记
2009/07/23 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
vue中实现弹出层动画效果的示例代码
2020/09/25 Javascript
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
人力资源专员自我评价怎么写
2013/09/19 职场文书
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
单位消防安全制度
2014/01/12 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
小学家长学校培训材料
2014/08/24 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL