在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 相关文章推荐
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
Jun 19 Javascript
学习并汇集javascript匿名函数
Nov 25 Javascript
构造函数+原型模式构造js自定义对象(最通用)
May 12 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
Mar 14 Javascript
Vue.js手风琴菜单组件开发实例
May 16 Javascript
AngularJs每天学习之总体介绍
Aug 07 Javascript
详解关于react-redux中的connect用法介绍及原理解析
Sep 11 Javascript
前端把html表格生成为excel表格的实例
Sep 19 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
详解在HTTPS 项目中使用百度地图 API
Apr 26 Javascript
简单了解TypeScript中如何继承 Error 类
Jun 21 Javascript
vue 限制input只能输入正数的操作
Aug 05 Javascript
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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
PHP反向代理类代码
2014/08/15 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
关于this和self的使用说明
2010/08/01 Javascript
理解Javascript_03_javascript全局观
2010/10/11 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
Python编写检测数据库SA用户的方法
2014/07/11 Python
python检测远程服务器tcp端口的方法
2015/03/14 Python
Python2.x与Python3.x的区别
2016/01/14 Python
如何在Python中编写并发程序
2016/02/27 Python
Python开发的HTTP库requests详解
2017/08/29 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
中职生自荐信范文
2014/06/15 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
服务行业演讲稿
2014/09/02 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
你知道Java Spring的两种事务吗
2022/03/16 Java/Android
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL