raspberryPi树莓派安装nodejs

来源:互联网 发布:工业设计需要软件 编辑:程序博客网 时间:2024/05/18 00:04

树莓派安装nodejs

前提

  • 已通过ssh远程登陆树莓派;
  • 或者已通过vncViewer连接树莓派;
  • 自带显示屏的树莓派可忽视以上两点;

tips:

  • 开启管理员权限:
sudo passwd root

输入两次密码后,再解锁root账户:

sudo passwd --unlock root  

再切换到root管理员:

su root  
  • 文件权限不够:
    文件名对所有人添加读、写、执行权限。
chmod 777 fileName

安装

树莓派属于Linux系统,arm架构,通过命令:

$ uname -a

可知道树莓派的cpu架构,在我的树莓派上现实的信息可知是armv7:

$ Linux raspberrypi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux

去nodejs官网查看最新版本,当前最新稳定版为6.11.2,下载已经编译好的版本:

$ wget https://nodejs.org/dist/latest-v6.x/node-v6.11.2-linux-armv7l.tar.gz

网速可能比较慢,可以喝杯咖啡稍等片刻,下载完后进行解压:

$ tar -xvf node-v6.11.2-linux-armv7l.tar.gz

解压完毕,进入目录,验证node是否可用:

$ cd node-v6.11.2-linux-armv7l/bin/$ ./node -vv6.11.2

在将该文件夹改名node(改不改根据个人喜好),此时我的node文件夹路径为:

/home/pi/node

再验证包管理工具npm是否正常:

$ ./npm -v3.10.10

配置node,让全局都能使用:

sudo ln /home/pi/node/bin/node /usr/local/bin/node

配置mpn,让全局能用:

sudo ln -s /home/pi/node/lib/node_modules/npm/bin/npm /usr/local/bin/npm

此时执行

$ npm -vmodule.js:471    throw err;    ^Error: Cannot find module '/usr/local/bin/node_modules/npm/bin/npm-cli.js'    at Function.Module._resolveFilename (module.js:469:15)    at Function.Module._load (module.js:417:25)    at Module.runMain (module.js:604:10)    at run (bootstrap_node.js:389:7)    at startup (bootstrap_node.js:149:9)    at bootstrap_node.js:504:3

会报错,现实路径不对,修改/usr/local/bin中的npm文件,把两处相对路径$basedir改为绝对路径/home/pi/node,修改后的代码如下:

#!/bin/sh(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fixbasedir=`dirname "$0"`case `uname` in    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;esacNODE_EXE="/home/pi/node/node.exe"if ! [ -x "$NODE_EXE" ]; then  NODE_EXE=nodefiNPM_CLI_JS="/home/pi/node/lib/node_modules/npm/bin/npm-cli.js"case `uname` in  *MINGW*)    NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g`    NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js"    if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then      NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS"    fi    ;;  *CYGWIN*)    NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g`    NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js"    if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then      NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS"    fi    ;;esac"$NODE_EXE" "$NPM_CLI_JS" "$@"