IBM Bluemix からも提供しているビジュアルフローエディタ Node-RED の最新バージョン v0.16 がリリースされました(2017/Jan/17 時点での最新版は v0.16.1):
https://libraries.io/npm/node-red/
新機能などの情報についてはこちらの公式ブログエントリや、
http://nodered.org/blog/2017/01/11/version-0-16-released
こちらのリリースノートを参照ください:
https://github.com/node-red/node-red/releases/tag/0.16.0
さて、上記ブログエントリにも書かれているのですが、この v0.16 より Node.js の v0.10 および v0.12 がサポート外になりました。Node.js も v4 以上のものを用意する必要があります。
これで問題になるのが CentOS/RHEL 6.x を使っている場合です。現在、CentOS/RHEL 6.x で(epel リポジトリなどを使って)普通に Node.js を導入すると v0.10.48 が導入されます:
IBM からも IBM SDK for Node.js として IBM 版の Node.js がリリースされていますが、こちらも CentOS/RHEL 6.x は v0.12 までしか用意されておらず、Node.js v4 以上を使おうとすると CentOS/RHEL であれば 7.x を使う必要があります:
https://developer.ibm.com/node/sdk/
ちなみに Node.js v0.10.x が導入された状況下で深く考えずに npm を使って Node-RED を導入すると、最新バージョン(今であれば v0.16.1)が導入されてしまいます。その結果起動時にエラーが発生し、ユーザー画面にもエラーメッセージが表示されてしまいます:
では改めて CentOS/RHEL 6.x のバージョンアップをせずにどうやって Node-RED を導入すればよいでしょうか? Node-RED の最新版を動かすために工夫する、というのも1つの方法ですが、Node-RED が最新版でなくてもよい場合であれば Node-RED v0.14.x を使う、という方法もあります。このバージョンであれば CentOS/RHEL 6.x でも動作します。
その場合の手順を紹介します。まず上記のコマンドを実行してしまって Node-RED v0.16.x を導入してしまった場合はアンインストールします:
リリースサイトを見ると、v0.14.x の最新バージョンは v0.14.6 のようです(2017/Jan/17 時点)。というわけで、改めてこのバージョンを指定して npm でインストールします:
こうしてインストールした Node-RED を起動すればエラーは発生しません:
というわけで、現時点で比較的簡単に CentOS/RHEL 6.x で Node-RED を動かす場合はこの方法になるのかな、と思ってます:
なお、CentOS/RHEL 6.x に Node.js v4.x を導入してから Node-RED v0.16.x を入れる、という方法もあります。CentOS/RHEL 6.x に Node.js v4.x を入れる方法についてはこちらに詳しく書かれていました:
CentOS 6.xにLTS(4.3.0)のnode.jsをインストールする
https://libraries.io/npm/node-red/
新機能などの情報についてはこちらの公式ブログエントリや、
http://nodered.org/blog/2017/01/11/version-0-16-released
こちらのリリースノートを参照ください:
https://github.com/node-red/node-red/releases/tag/0.16.0
さて、上記ブログエントリにも書かれているのですが、この v0.16 より Node.js の v0.10 および v0.12 がサポート外になりました。Node.js も v4 以上のものを用意する必要があります。
これで問題になるのが CentOS/RHEL 6.x を使っている場合です。現在、CentOS/RHEL 6.x で(epel リポジトリなどを使って)普通に Node.js を導入すると v0.10.48 が導入されます:
# node -v v0.10.48
IBM からも IBM SDK for Node.js として IBM 版の Node.js がリリースされていますが、こちらも CentOS/RHEL 6.x は v0.12 までしか用意されておらず、Node.js v4 以上を使おうとすると CentOS/RHEL であれば 7.x を使う必要があります:
https://developer.ibm.com/node/sdk/
ちなみに Node.js v0.10.x が導入された状況下で深く考えずに npm を使って Node-RED を導入すると、最新バージョン(今であれば v0.16.1)が導入されてしまいます。その結果起動時にエラーが発生し、ユーザー画面にもエラーメッセージが表示されてしまいます:
# npm install node-red -g (このコマンドは成功する) # node-red : : Welcome to Node-RED =================== 17 Jan 10:10:33 - [info] Node-RED version: v0.16.1 17 Jan 10:10:33 - [info] Node.js version: v0.10.48 17 Jan 10:10:33 - [error] ***************************************************************** 17 Jan 10:10:33 - [error] * Unsupported version of Node.js. Requires: >=4 Found: v0.10.48 * 17 Jan 10:10:33 - [error] ***************************************************************** 17 Jan 10:10:33 - [info] Linux 2.6.32-642.11.1.el6.x86_64 x64 LE 17 Jan 10:10:33 - [info] Loading palette nodes /usr/lib/node_modules/node-red/node_modules/mqtt/lib/connect/index.js:100 const isSecure = ['mqtts', 'wss'].indexOf(opts.protocol) !== -1 ^^^^^ 17 Jan 10:10:35 - [warn] ------------------------------------------------------ 17 Jan 10:10:35 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node 17 Jan 10:10:35 - [warn] [mqtt] SyntaxError: Use of const in strict mode. 17 Jan 10:10:35 - [warn] ------------------------------------------------------ 17 Jan 10:10:35 - [info] Settings file : /root/.node-red/settings.js 17 Jan 10:10:35 - [info] User directory : /root/.node-red 17 Jan 10:10:35 - [info] Flows file : /root/.node-red/flows_xxxxxxxx.xxxxx.xxx.json 17 Jan 10:10:35 - [info] Creating new flow file 17 Jan 10:10:35 - [info] Server now running at http://127.0.0.1:1880/ 17 Jan 10:10:35 - [info] Starting flows 17 Jan 10:10:35 - [info] Started flows
↑起動が成功したように見えるが、バージョン非互換のエラーが発生している
では改めて CentOS/RHEL 6.x のバージョンアップをせずにどうやって Node-RED を導入すればよいでしょうか? Node-RED の最新版を動かすために工夫する、というのも1つの方法ですが、Node-RED が最新版でなくてもよい場合であれば Node-RED v0.14.x を使う、という方法もあります。このバージョンであれば CentOS/RHEL 6.x でも動作します。
その場合の手順を紹介します。まず上記のコマンドを実行してしまって Node-RED v0.16.x を導入してしまった場合はアンインストールします:
# npm uninstall node-red -g
リリースサイトを見ると、v0.14.x の最新バージョンは v0.14.6 のようです(2017/Jan/17 時点)。というわけで、改めてこのバージョンを指定して npm でインストールします:
# npm install node-red@0.14.6 -g
こうしてインストールした Node-RED を起動すればエラーは発生しません:
# node-red : : Welcome to Node-RED =================== 17 Jan 10:15:55 - [info] Node-RED version: v0.14.6 17 Jan 10:15:55 - [info] Node.js version: v0.10.48 17 Jan 10:15:55 - [info] Linux 2.6.32-642.11.1.el6.x86_64 x64 LE 17 Jan 10:15:55 - [info] Loading palette nodes 17 Jan 10:15:58 - [warn] ------------------------------------------------------ 17 Jan 10:15:58 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node 17 Jan 10:15:58 - [warn] ------------------------------------------------------ 17 Jan 10:15:58 - [warn] Missing node modules: 17 Jan 10:15:58 - [warn] - node-red: yaml 17 Jan 10:15:58 - [info] Removing modules from config 17 Jan 10:15:58 - [info] Settings file : /root/.node-red/settings.js 17 Jan 10:15:58 - [info] User directory : /root/.node-red 17 Jan 10:15:58 - [info] Flows file : /root/.node-red/flows_xxxxxxxx.xxxxx.xxx.json 17 Jan 10:15:58 - [info] Creating new flow file 17 Jan 10:15:58 - [info] Starting flows 17 Jan 10:15:58 - [info] Started flows 17 Jan 10:15:58 - [info] Server now running at http://127.0.0.1:1880/
↑起動成功
というわけで、現時点で比較的簡単に CentOS/RHEL 6.x で Node-RED を動かす場合はこの方法になるのかな、と思ってます:
なお、CentOS/RHEL 6.x に Node.js v4.x を導入してから Node-RED v0.16.x を入れる、という方法もあります。CentOS/RHEL 6.x に Node.js v4.x を入れる方法についてはこちらに詳しく書かれていました:
CentOS 6.xにLTS(4.3.0)のnode.jsをインストールする
コメント