[树莓派]安装node环境,树莓派node环境


本文并非node的编译安装,据说这要花很长时间,所以一开始我就是拒绝的。本文展示的是如何部署ndoe的编译好的执行文件。

node的官网上下载目录里本身就有针对arm的编译好的执行文件。地址在这里:https://nodejs.org/dist/v4.2.1/

选择合适的版本

uname -a

来显示系统信息

https://nodejs.org/dist/v4.2.1/node-v4.2.1-linux-armv7l.tar.gz

tar xvzf node-v4.2.1-linux-armv7l.tar.gz

移动

mv node-v4.2.1-linux-armv7l /usr/local/bin

配置

为了让node和npm命令在所有目录都有效,要么在已有的PATH路径中建立node和npm的链接,要么在PATH中加入node和npm所在的路径。我选了链接的方案。

node链接

sudo ln /usr/local/bin/node-v4.2.1-linux-armv71/bin/node /usr/local/bin/node

npm链接

node-v4.2.1-linux-armv71/bin目录里的npm默认是软链到node-v4.2.1-linux-armv71/lib/node_modules/npm/bin/npm-cli.js由于加载路径和当前工作目录的问题,直接硬链或软链都会有问题,二在node-v4.2.1-linux-armv71/lib/node_modules/npm/bin/目录里面还有一个名为npm的bash脚本,就链这个npm。

sudo ln -s /usr/local/bin/node-v4.2.1-linux-armv71/lib/node_modules/npm/bin/npm /usr/local/bin/npm

尝试npm -v发现出错了,说是找不到npmlog模块,又是工作目录的问题。

打开这个脚本,发现这个脚本稍加改造就可以胜任要求。

贴上修改后的文件内容:

#!/bin/sh
(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix

basedir=$(dirname `readlink -f $0`)
cd $basedir

case `uname` in
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac

NODE_EXE="$basedir/node.exe"
if ! [ -x "$NODE_EXE" ]; then
  NODE_EXE=node
fi

NPM_CLI_JS="$basedir/node_modules/npm/bin/npm-cli.js"
if ! [ -x "$NPM_CLI_JS" ]; then
  NPM_CLI_JS=npm-cli.js
fi

case `uname` in
  *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" "$@"

确认起效

image

相关内容

    暂无相关文章