[Cubieboard] 在 Cubieboard 上安装 Node.js 和 npm
你有两个选择可以实现在Cubieboard上安装NodeJS,下载别人已经编译完成适用于Cubieboard的NodeJS二进制包,或者自己下载源码自行在Cubieboard上进行编译。
使用编译完成的二进制包
在这里下载适用于ARM架构的Node.js,如果在Cubieboard社区找不到相关资源,可以在RaspberryPi社区寻找相近的资源。例如在《Node.js installation for Raspberry Pi》一文中提供了最新的适用于RaspberryPi的Node.js可执行包下载,这里同样了提供了可执行二进制包下载,但要注意它们所针对的RaspberryPi所使用的芯片,未必适合于Cubieboard2,但值得尝试一下,拓展一下思路。
从源码包编译安装Node.js
(本文以BeagleBone为例)
相比于常见的使用Cross-complie来编译适用于ARM架构的可执行包,你也可以在Cubieboard(原文是在BeagleBone上编译,本文是在Cubieboard的Lubuntu上进行编译)上直接编译,但这样做会消耗更长的一点时间。
Compile和Install操作时请使用sudo或者su切换到root权限。
第一步:准备工作
首先你需要一个编译器来编译NodeJS源码。Build过程需要Python来处理一些配置文件,另外需要GCC来处理真正的源代码。
# apt-get install python
# apt-get install build-essential
第二步:下载Node源代码
从Node.js官网下载最新的源代码。截至本文落笔时最新的NodeJS版本为0.10.28(原文为0.10.5)。本文直接将源码包解压至当前文件夹,你可以使用-C <path>选项来指定解压路径。
# wget http://nodejs.org/dist/v0.10.28/node-v0.10.28.tar.gz
# tar xzvf node-v0.10.28.tar.gz
第三步:配置
截至原文落笔时,Google的V8引擎Snapshot功能会导致Node发生segmentation fault。Snapshotting可以帮助Node以更快的速度启动,但这不是一个很重要的特性,因此编译时可以忽略它。
# cd node-v0.10.28
# ./configure --without-snapshot
打印的配置结果:
{ 'target_defaults': { 'cflags': [],
'default_configuration': 'Release',
'defines': [],
'include_dirs': [],
'libraries': []},
'variables': { 'arm_fpu': 'vfpv3',
'arm_neon': ,
'armv7': ,
'clang': ,
'gcc_version': ,
'host_arch': 'arm',
'node_install_npm': 'true',
'node_prefix': '',
'node_shared_cares': 'false',
'node_shared_http_parser': 'false',
'node_shared_libuv': 'false',
'node_shared_openssl': 'false',
'node_shared_v8': 'false',
'node_shared_zlib': 'false',
'node_tag': '',
'node_unsafe_optimizations': ,
'node_use_dtrace': 'false',
'node_use_etw': 'false',
'node_use_openssl': 'true',
'node_use_perfctr': 'false',
'node_use_systemtap': 'false',
'python': '/usr/bin/python',
'target_arch': 'arm',
'v8_enable_gdbjit': ,
'v8_no_strict_aliasing': ,
'v8_use_arm_eabi_hardfloat': 'true',
'v8_use_snapshot': 'false'}}
creating ./config.gypi
creating ./config.mk
第四步:编译
开始编译,编译时间大概在30-40分钟左右吧。
# make
第五步:确认编译是否成功
当Build完成时,我们可以确认一下编译是否成功,然后再进行安装。
# ./node -e 'console.log("hello, world");'
# ./node -v
本文确认结果为可以正确打印Node版本号,但不能执行node命令,同样状况出现在npm身上。
第六步:安装
# make install
如果已经安装了,可以使用make uninstall进行卸载。
结束语
由于本次在Cubieboard上进行的natively compile没有成功,最后还是使用了"Node.js installation for Raspberry Pi"一文中所提供的预编译文件在Cubieboard2上成功安装了NodeJS-0.10.28及npm-1.4.9。
1. 下载安装包
$ wget http://node-arm.herokuapp.com/node_latest_armhf.deb
本文落笔时NodeJS最新版本为0.10.28,因此下载了该版本。
2. 安装
$ sudo dpkg -i node_0.10.28-1_armhf.deb
Selecting previously unselected package node.
(Reading database ... files and directories currently installed.)
Unpacking node (from node_0.10.28-1_armhf.deb) ...
Setting up node (0.10.-) ...
Processing triggers for man-db ...
3. 验证
$ node -e 'console.log("hello, world");'
hello, world
$ node -v
v0.10.28
$ npm -v
1.4.
参考:Node.js for the BeagleBone Black
[Cubieboard] 在 Cubieboard 上安装 Node.js 和 npm的更多相关文章
- 如何在CentOS 7上安装Node.js和npm
Node.js是一个跨平台的JavaScript运行时环境,允许在服务器端执行JavaScript代码.Node.js主要用于后端,但也作为全栈和前端解决方案而流行. npm,Node软件包管理器的缩 ...
- (转)在Windows平台上安装Node.js及NPM模块管理
本文转载自:http://www.cnblogs.com/seanlv/archive/2011/11/22/2258716.html 之前9月份的时候我写了一篇关于如何在Windows平台上手工管理 ...
- 在Linux Mint上安装node.js和npm
1.安装Node.js 前端开发过程中,很多项目使用npm的http-server的模块来运行一个静态的服务器,我个人在Dell的笔记本上安装的是Linux Mint最新版本,所以想尝试一下在Linu ...
- 在Windows平台上安装Node.js及NPM模块管理
1. 下载Node.js官方Windows版程序:http://nodejs.org/#download 从0.6.1开始,Node.js在Windows平台上提供了两种安装方式,一是.MSI安 ...
- [译]How to Install Node.js on Ubuntu 14.04 如何在ubuntu14.04上安装node.js
原文链接为 http://www.hostingadvice.com/how-to/install-nodejs-ubuntu-14-04/ 由作者Jacob Nicholson 发表于October ...
- CentOS上安装Node.js
CentOS上安装Node.js [日期:2014-07-21] 来源:Linux社区 作者:maskdfe [字体:大 中 小] CentOS上安装Node.js(想在Linux上学习No ...
- Window 上安装Node.js
Window 上安装Node.js 1.Windows安装包下载地址 https://nodejs.org/en/ 2.下载好后,按照默认设置即可,安装路径可以更改 3.安装好后,检测PATH环境变量 ...
- 在CentOS上安装node.js的时候报错:No acceptable C compiler found!解决办法
在CentOS上安装node.js的时候报错:No acceptable C compiler found! 原因:没有c编译器. 解决办法:安装GCC 命令如下: #yum install gcc ...
- 在树莓派3B上安装node.js
本文主讲如何在树莓派3B上安装node.js 环境描述1. 树莓派安装了`2016-11-25-raspbian-jessie-lite`(PS:在此版本的镜像中,默认禁用了ssh,在烧录好镜像之后, ...
随机推荐
- Zookeeper 快速理解
转自:http://blog.csdn.net/colorant/article/details/8444283 == 是什么 == 目标Scope(解决什么问题) 为分布式系统提供高可靠性的协同工作 ...
- == equals hashCode 总结比较
在Java中: ==是运算符,用于比较两个变量是否相等. equals,是Objec类的方法,用于比较两个对象是否相等,默认Object类的equals方法是比较两个对象的地址,跟==的结果一样.Ob ...
- Newtonsoft.Json 序列化小写首字母
//json对象命名小驼峰式转换var json = JsonConvert.SerializeObject(newAccount, Formatting.Indented, new JsonSeri ...
- Lua------------------unity关于lua的使用
关于Lua在Unity 中的使用 对于手机游戏,如果可以在线更新以实现bug修复.新功能添加等等,其好处自不必多说. 通过C#的反射机制,也可以实现某种程度上的脚本级更新,具体可以参考 http: ...
- 模式识别之knn---KNN(k-nearest neighbor algorithm)--从原理到实现
用官方的话来说,所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居),这K个实例的多数属于某个类,就把该输入实例分类到这个类中 ...
- ASP.NET后台输出js脚本代码
利用asp.net输出js我们大多数都会直接使用Respone.Write()然后根js格式的代码,再在页面调用时我们直接这样是完全可以实现的,下面我来给大家介绍另一种方法 我是我最初的想法以下是代码 ...
- Xianfeng轻量级Java中间件平台:用户管理
用户管理:简单地说,就是管理系统用户的账号信息.在典型的业务系统中,用户管理往往不包含用户隶属组织机构相关属性(比如部门.岗位等)的维护,而是由组织机构管理专门去维护.因此在用户管理的功能中,主要就维 ...
- DedeCMSV57数据库结构文档(数据字典)
表名:dede_addonarticle(ENGINE=MyISAM/CHARSET=gbk) 字段名 说明描述 具体参数 aid 文章ID mediumint(8) unsigned NOT N ...
- 作为一枚第二天上班的小小.net程序员(技术宅的那种)很迷茫哦,第一个随笔
作为一枚第二天上班的小小.net程序员(技术宅的那种)很迷茫哦,第一个随笔
- MYSQL之You can't specify target table for update in FROM clause解决办法
mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表( ...