Ubuntu中搭建Nodejs开发环境过程分享


Posted in NodeJs onJune 01, 2014

系统环境:

Ubuntu 12.04 LTS 64bit

一、 通过apt-get安装nodejs ? 失败(可以下面的看源码安装方法):

~ sudo apt-get install nodejs
~ sudo apt-get install npm
~ node -v
v0.6.12
~ npm -v
1.1.4

创建工作目录
~ mkdir workspace
~ mkdir workspace/nodejs
~ cd workspace/nodejs
~ pwd
/home/conan/workspace/nodejs

安装失败
sudo npm install express -g
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/connect/2.7.11
npm http GET https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.4
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/send/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/commander/0.6.1
npm http 304 https://registry.npmjs.org/connect/2.7.11
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http 304 https://registry.npmjs.org/mkdirp/0.3.4
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/fresh/0.1.0
npm http 304 https://registry.npmjs.org/methods/0.0.1
npm http 304 https://registry.npmjs.org/send/0.1.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.1
npm http 304 https://registry.npmjs.org/debug
npm ERR! error installing express@3.2.6
npm ERR! error rolling back express@3.2.6 Error: UNKNOWN, unknown error '/usr/local/lib/node_modules/express'
npm ERR! Unsupported
npm ERR! Not compatible with your version of node/npm: connect@2.7.11
npm ERR! Required: {"node":">= 0.8.0"}
npm ERR! Actual: {"npm":"1.1.4","node":"0.6.12"}
npm ERR!
npm ERR! System Linux 3.5.0-23-generic
npm ERR! command "node" "/usr/bin/npm" "install" "express" "-g"
npm ERR! cwd /home/conan/workspace/nodejs
npm ERR! node -v v0.6.12
npm ERR! npm -v 1.1.4
npm ERR! code ENOTSUP
npm ERR! message Unsupported
npm ERR! errno {}
npm http GET https://registry.npmjs.org/mime/1.2.6
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/conan/workspace/nodejs/npm-debug.log
npm not ok

系统提示, node和npm版本不兼容。可能是终于apt-get源没有更新造成的问题。

二、从github下载源代码安装 ? 成功

下面要找到兼容的版本,手动安装。
先卸载刚刚装的node和npm

~ sudo apt-get autoremove npm
~ sudo apt-get autoremove nodejs
找到nodejs的官方发布下载:https://github.com/joyent/node

在ubuntu中,先安装git

~ sudo apt-get install git

然后,从github下载nodejs源代码
~ git clone git://github.com/joyent/node.git
Cloning into 'node'...
remote: Counting objects: 100200, done.
remote: Compressing objects: 100% (28074/28074), done.
remote: Total 100200 (delta 78807), reused 90936 (delta 70473)
Receiving objects: 100% (100200/100200), 61.81 MiB | 698 KiB/s, done.
Resolving deltas: 100% (78807/78807), done.

进入node目录
~ cd node
~ pwd
/home/conan/workspace/nodejs/node

切换最新的release的版本v0.11.2-release
~ git checkout v0.11.2-release
Branch v0.11.2-release set up to track remote branch v0.11.2-release from origin.
Switched to a new branch 'v0.11.2-release'

进行安装
./configure
make
sudo make install

安装完成,查看node版本
~ node -v
-bash: /usr/bin/node: No such file or directory

提示错误,没有找到node,查一下node安装位置
~ whereis node
node: /usr/local/bin/node

增加软链接:node和npm到/usr/bin
~ sudo ln -s /usr/local/bin/node /usr/bin/node
~ sudo ln -s /usr/local/bin/npm /usr/bin/npm

我们再查看node和npm版本
~ node -v
v0.11.2
~ npm -v
1.2.21

下面安装express

~ sudo npm install express -g
express@3.2.6 /usr/local/lib/node_modules/express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie-signature@1.0.1
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── debug@0.7.2
├── commander@0.6.1
├── mkdirp@0.3.4
├── send@0.1.0 (mime@1.2.6)
└── connect@2.7.11 (pause@0.0.1, qs@0.6.5, bytes@0.2.0, cookie@0.0.5, formidable@1.0.14, send@0.1.1)

安装成功。

三、建立express工程,启动第一个项目

~ express -e nodejs-demo
create : nodejs-demo
create : nodejs-demo/package.json
create : nodejs-demo/app.js
create : nodejs-demo/public
create : nodejs-demo/public/javascripts
create : nodejs-demo/public/images
create : nodejs-demo/public/stylesheets
create : nodejs-demo/public/stylesheets/style.css
create : nodejs-demo/routes
create : nodejs-demo/routes/index.js
create : nodejs-demo/routes/user.js
create : nodejs-demo/views
create : nodejs-demo/views/index.ejs
install dependencies:
$ cd nodejs-demo && npm install
run the app:
$ node app

安装依赖包

~ cd nodejs-demo
~ sudo npm install
express@3.2.6 node_modules/express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie-signature@1.0.1
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── debug@0.7.2
├── commander@0.6.1
├── mkdirp@0.3.4
├── send@0.1.0 (mime@1.2.6)
└── connect@2.7.11 (pause@0.0.1, qs@0.6.5, bytes@0.2.0, cookie@0.0.5, formidable@1.0.14, send@0.1.1)

启动程序

~ node app.js
Express server listening on port 3000

测试是否启动成功curl

~ sudo apt-get install curl
~ curl localhost:3000
<!DOCTYPE html>
<html>
<head>
<title>Express</title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1>Express</h1>
<p>Welcome to Express</p>
</body>
</html>

nodejs的服务器日志:

GET / 200 6ms - 206b

好了,我们已经成功的在ubuntu中,准备好了nodejs的开发环境。下面就可以享受开发的乐趣了。
NodeJs 相关文章推荐
nodejs npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
Nodejs极简入门教程(一):模块机制
Oct 25 NodeJs
Nodejs抓取html页面内容(推荐)
Aug 11 NodeJs
详解nodejs 文本操作模块-fs模块(三)
Dec 22 NodeJs
搭建简单的nodejs http服务器详解
Mar 09 NodeJs
NodeJS处理Express中异步错误
Mar 26 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
深入解析nodejs HTTP服务
Jul 25 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 NodeJs
Nodejs让异步变成同步的方法
Mar 02 NodeJs
nodejs微信开发之接入指南
Mar 17 NodeJs
Nodejs + Websocket 指定发送及群聊的实现
Jan 09 NodeJs
Nodejs进程管理模块forever详解
Jun 01 #NodeJs
NodeJS Express框架中处理404页面一个方式
May 28 #NodeJs
跟我学Nodejs(三)--- Node.js模块
May 25 #NodeJs
跟我学Nodejs(二)--- Node.js事件模块
May 21 #NodeJs
跟我学Nodejs(一)--- Node.js简介及安装开发环境
May 20 #NodeJs
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
Mar 18 #NodeJs
用nodejs实现PHP的print_r函数代码
Mar 14 #NodeJs
You might like
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
PHP创建/删除/复制文件夹、文件
2016/05/03 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
JQuery 选项卡效果(JS与HTML的分离)
2010/04/01 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
js数组与字符串的相互转换方法
2014/07/09 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
2016/12/16 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
JS中的作用域链
2017/03/01 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
vue.js中created方法作用
2018/03/30 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
python系列 文件操作的代码
2019/10/06 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
计算机专业职业规划
2014/02/28 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
员工自我工作评价
2015/03/06 职场文书