升级

注意: 如果你使用的是Raspian Jessie中的预装版本,请参考升级树莓派的相关说明,使用`update-nodejs-and-nodered`脚本。

目前,我们建议使用版本为2或3的npm(不建议使用版本4),在升级前,请先运行npm -v检查一下你所安装的版本,如果必要,请运行

sudo npm i -g npm@3.x
hash -r

如果你是以全局方式安装的Node-RED,那么可以通过以下指令升级到最新版本:

sudo npm cache clean
sudo npm update -g --unsafe-perm node-red

如果要检查安装到用户目录中的节点是否过期,可以执行:

cd ~/.node-red
npm outdated

执行后,将会列出所有需要升级节点的列表,如需升级,可执行:

npm update              # to update all nodes, or
npm update foo          # to only update a node called foo

升级后,需要暂停并重启Node-RED。

升级NNode.js

如果要升级Node.js,比如从v0.10.x升级到v4.6.x,最好先停用Node-RED,然后按照下面的方式重装:

sudo npm cache clean
sudo npm install -g --unsafe-perm node-red

可能还需要重新编译那些有二进制依赖项的节点,如果你是按建议将它们安装在~/.node-red目录中,那么可以这么做:

cd ~/.node-red
npm rebuild

安装完成后,需要重启Node-RED。


升级Node-RED 0.10.4之前版本

对于0.10.4之前的版本,默认是将用户数据写入Node-RED的安装目录,这使得升级的过程变得非常痛苦。下面我们将带领你,将既有的数据从安装目录中移出。

  1. 首先选择你想用来保存数据的地方,Node-RED 0.10.4的默认存储地址为$HOME/.node-red,你也可以利用--userDir改变这项设置。

  2. 备份整个Node-RED安装目录,以防万一。

  3. 将以下文件从Node-RED安装目录移至你选择的用户数据目录:

    • settings.js - 如果你对它进行了修改
    • 所有以flows_开头的文件
    • .config.json
    • .sessions.json - 如果有这个文件的话
    • 整个lib/目录
    • nodes/下手工安装的所有附加节点
  4. 对于已移动的数据,应确保执行Node-RED的用户对新目录和文件具有相应读写权限。

  5. 删除原有Node-RED安装目录,依照安装说明安装新版本系统。

  6. 如果已经用npm安装了附加节点,或手工复制了其npm依赖项,那么需要重新安装它们

注意: 之所以要在安装时使用--unsafe-perm选项,是因为当node-gyp尝试重新编译本地代码库时,会以”nobody”身份执行,这就造成在存取某些目录资源时有可能会发生错误,并使得与问题相关的节点无法被正常安装(如serialport)。这一选项可使其在安装期间具有访问特权,确保相关节点在升级过程中能被正确安装。