树莓派手动选择版本安装Node.js

  • 内容
  • ....
  • 相关

树莓派FPV机器人系统编译之VNC 中我们介绍了树莓派FPV机器人系统的前期准备工作,基于Raspbian Buster的一些基础设置,使PC能通过VNC Viewer远程连接到树莓派桌面,单离实现FPV还有一点距离。下面接着上一篇文章的进程继续完成后续的工作。

Node.js
Node.js

安装新版Node.js

Node.js在树莓派上的使用以前做过介绍,详见:使用Node.js控制树莓派的GPIO接口 。在树莓派Buster镜像安装完成并顺利开机后,我们都有习惯在命令行运行

sudo apt-get update
sudo apt-get upgrade

来更新软件包,使系统保持更新。但如果第一次开机后直接运行上述命令,将会是一个漫长的等待过程,原因是树莓派默认的软件源是官方地址,且地址在外网,导致连接速度极慢甚至断开,因此在执行更新前需要修改为国内软件源地址,具体操作和地址,请查阅:树莓派4 Raspbian Buster更换软件源 。软件源修改完成后,可以执行上面的命令了。

在树莓派官方软件包中默认已安装了 Node.js 和 npm,但奇怪的是,在测试时发现自带的npm与node并不兼容,在测试中发现Buster默认node.js的版本是10.15.2,而npm版本是5.08。查阅Node.js官网,发现两者npm 5.08 并不支持node.js 10.15.2版本。详见下图:

从上图可见,node.js 10.15.2 对应的npm版本应该是 npm 6.4.1,于是决定删除自带的node.js和npm,安装最新的长期支持版node.js 12.16.1,且node.js官方包中集成了npm。

替换树莓派默认的node.js和npm

一、删除默认安装的软件

#卸载nodejs
sudo apt-get remove nodejs
#清除软件包以及相关配置
sudo apt-get purge nodejs

二、查看树莓派内核版本:

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.97-v7+ #1294 SMP Thu Jan 30 13:15:58 GMT 2020 armv7l GNU/Linux
pi@raspberrypi:~ $

三、下载最新长期支持版的 armv7l 对应的 nodejs:

wget https://npm.taobao.org/mirrors/node/v12.16.1/node-v12.16.1-linux-armv7l.tar.xz

这里使用了 npm.taobao.org 地址,如果使用官方地址,会慢到崩溃^..^。需要注意的是下载完成的软件包名称是 node-v12.16.1-linux-armv7l.tar.xz.1 ,细心的伙伴会注意,文件名称多了“.1”。

四、解压压缩包

tar -xvf node-v12.16.1-linux-armv7l.tar.xz.1

五、删除系统上的旧目录(如果存在)

sudo rm /usr/bin/node
sudo rm /usr/bin/npm

六、将文件复制到指定位置

sudo mv ./node-v12.16.1-linux-armv7l /usr/local/node

七、node 和 npm 创建软连接

sudo ln -s /usr/local/node/bin/node /usr/bin/node
sudo ln -s /usr/local/node/bin/npm /usr/bin/npm

八、检查软件安装是否成功

pi@raspberrypi:~ $ node -v
v12.16.1
pi@raspberrypi:~ $ npm -v
6.13.4