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 相关文章推荐
使用forever管理nodejs应用教程
Jun 03 NodeJs
ubuntu下安装nodejs以及升级的办法
May 08 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
nodejs redis 发布订阅机制封装实现方法及实例代码
Dec 15 NodeJs
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
Mar 28 NodeJs
nodejs利用ajax实现网页无刷新上传图片实例代码
Jun 06 NodeJs
使用nodejs+express实现简单的文件上传功能
Dec 27 NodeJs
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
May 15 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 NodeJs
Nodejs + sequelize 实现增删改查操作
Nov 07 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
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
浅析php创建者模式
2014/11/25 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
JavaScript浏览器选项卡效果
2010/08/25 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
React学习之JSX与react事件实例分析
2020/01/06 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
Python创建文件和追加文件内容实例
2014/10/21 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
python实现外卖信息管理系统
2018/01/11 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
django如何连接已存在数据的数据库
2018/08/14 Python
Python读取指定日期邮件的实例
2019/02/01 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
令人印象深刻的自荐信
2014/05/25 职场文书
学术会议邀请函
2015/01/30 职场文书
环境建议书
2015/02/04 职场文书
水电工岗位职责
2015/02/14 职场文书
python非标准时间的转换
2021/07/25 Python
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫
如何利用python实现Simhash算法
2022/06/28 Python