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中实现sleep功能实例
Mar 24 NodeJs
实例详解Nodejs 保存 payload 发送过来的文件
Jan 14 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
NodeJS实现客户端js加密
Jan 09 NodeJs
详解nodejs操作mongodb数据库封装DB类
Apr 10 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
nodejs 搭建简易服务器的图文教程(推荐)
Jul 18 NodeJs
Windows下快速搭建NodeJS本地服务器的步骤
Aug 09 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
nodejs基于express实现文件上传的方法
Mar 19 NodeJs
基于Nodejs的Tcp封包和解包的理解
Sep 19 NodeJs
Nodejs 数组的队列以及forEach的应用详解
Feb 25 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
用户的详细注册和判断
2006/10/09 PHP
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
2021/03/09 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
2011/03/30 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
JS的参数传递示例介绍
2014/02/08 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
使用js画图之饼图
2015/01/12 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
最大K个数问题的Python版解法总结
2016/06/16 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
13个最常用的Python深度学习库介绍
2017/10/28 Python
使用python实现knn算法
2017/12/20 Python
Django视图和URL配置详解
2018/01/31 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
秋游活动策划方案
2014/02/16 职场文书
房产买卖委托公证书
2014/04/04 职场文书
公司食堂管理制度
2015/08/05 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
导游词之清晏园
2019/11/22 职场文书
redis复制有可能碰到的问题汇总
2022/04/03 Redis