Raspberry Piでenebular editorをインストールするメモ (※パレットの管理メニューが表示されない問題を解決)

# はじめに

ビジュアルプログラミングIoTLT vol.7でラズパイ版のenebular editorがリリースされたことを知ったのをきっかけに、さっそくインストールして動作を試してみました。

![スクリーンショット 2021-06-04 18.23.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/b502d0fd-3425-d4e7-fbca-5bd3eeb3e964.png)

https://iotlt.connpass.com/event/206170/

enebular editorの公式ドキュメントはこちらです。

https://docs.enebular.com/ja/enebulareditor/

```bash
pi@raspberrypi:~ $ wget -qO- https://enebular.com/editor-install | sudo -u "$USER" -E bash -s -- --arch=arm
==== Installing arm version ====
enebular editor install location: /home/pi/Applications/enebular-editor
==== Downloading enebular editor ====
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   394  100   394    0     0   2774      0 --:--:-- --:--:-- --:--:--  2774
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   394  100   394    0     0   4020      0 --:--:-- --:--:-- --:--:--  4020
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 87.5M  100 87.5M    0     0  2693k      0  0:00:33  0:00:33 --:--:-- 2846k
Checksum matched
==== Downloading icon ====
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 39035  100 39035    0     0   245k      0 --:--:-- --:--:-- --:--:--  245k
==== Creating desktop entry ====
==== Starting post install ====
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  libwnck-3-0 libwnck-3-common mate-notification-daemon-common
以下のパッケージが新たにインストールされます:
  libwnck-3-0 libwnck-3-common mate-notification-daemon mate-notification-daemon-common
アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 190 個。
434 kB のアーカイブを取得する必要があります。
この操作後に追加で 3,038 kB のディスク容量が消費されます。
取得:1 http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian buster/main armhf libwnck-3-common all 3.30.0-2 [234 kB]
取得:2 http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian buster/main armhf libwnck-3-0 armhf 3.30.0-2 [97.5 kB]
取得:3 http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian buster/main armhf mate-notification-daemon-common all 1.20.2-1 [58.6 kB]
取得:4 http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian buster/main armhf mate-notification-daemon armhf 1.20.2-1 [44.1 kB]
434 kB を 3秒 で取得しました (156 kB/s)            
以前に未選択のパッケージ libwnck-3-common を選択しています。
(データベースを読み込んでいます ... 現在 94409 個のファイルとディレクトリがインストールされています。)
.../libwnck-3-common_3.30.0-2_all.deb を展開する準備をしています ...
libwnck-3-common (3.30.0-2) を展開しています...
以前に未選択のパッケージ libwnck-3-0:armhf を選択しています。
.../libwnck-3-0_3.30.0-2_armhf.deb を展開する準備をしています ...
libwnck-3-0:armhf (3.30.0-2) を展開しています...
以前に未選択のパッケージ mate-notification-daemon-common を選択しています。
.../mate-notification-daemon-common_1.20.2-1_all.deb を展開する準備をしています ...
mate-notification-daemon-common (1.20.2-1) を展開しています...
以前に未選択のパッケージ mate-notification-daemon を選択しています。
.../mate-notification-daemon_1.20.2-1_armhf.deb を展開する準備をしています ...
mate-notification-daemon (1.20.2-1) を展開しています...
libwnck-3-common (3.30.0-2) を設定しています ...
mate-notification-daemon-common (1.20.2-1) を設定しています ...
libwnck-3-0:armhf (3.30.0-2) を設定しています ...
desktop-file-utils (0.23-4) のトリガを処理しています ...
mime-support (3.62) のトリガを処理しています ...
hicolor-icon-theme (0.17-2) のトリガを処理しています ...
gnome-menus (3.31.4-3) のトリガを処理しています ...
libglib2.0-0:armhf (2.58.3-2+deb10u2) のトリガを処理しています ...
libc-bin (2.28-10+rpi1) のトリガを処理しています ...
man-db (2.8.5-2) のトリガを処理しています ...
mate-notification-daemon (1.20.2-1) を設定しています ...
Post install finished
======================================================================================================================================================================================
 enebular editor has been successfully installed ✔
   - Version: 1.1.4
   - Location: /home/pi/Applications/enebular-editor
======================================================================================================================================================================================
See details in full install log file: /tmp/enebular-editor-install-log.d59e0R
```

# パレットの管理メニューが表示されない問題

enebular editorは問題なくインストールでき正常に起動しましたが、パレットの管理メニューが表示されない問題に遭遇しました。

![スクリーンショット 2021-06-04 18.18.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/2cbe4ec8-3794-eb15-6e00-b6dcc7c5b6d8.png)

Linux版の仕様かな？！と思っていたところ、enebular developer meetupでNode.jsのバージョンが問題かも(v10→v12へバージョンアップしてみてはどうか)、というヒントをいただきました。

https://enebular.connpass.com/event/207385/

https://twitter.com/Zakkiea/status/1400411195073462277

ターミナル(CLI)からenebular editorの実行ファイル(AppRun.AppImage)を実行してデバッグログを表示させたところ、「パレットエディタを無効化 : npmコマンドが見つかりません」というログが出力されていました。

### 実行ログ

```bash
$ cd ~/Applications/enebular-editor/
$ sudo ./AppRun.AppImage
[2021-06-04 10:16:42.837] [info] Disabling sandbox
[2021-06-04 10:16:42.847] [info] ==========================================
[2021-06-04 10:16:42.848] [info] Running on linux
[2021-06-04 10:16:42.848] [info] Architecture arm
[2021-06-04 10:16:42.849] [info] Base dir /root/.config/enebular-editor
[2021-06-04 10:16:42.849] [info] Base url https://enebular.com/
[2021-06-04 10:16:42.849] [info] Base dir was cleaned
[2021-06-04 10:16:42.850] [info] ==========================================
[2021-06-04 10:16:43.951] [info] Checking for update
[2021-06-04 10:16:45.477] [info] Generated new staging user ID: 955ba6cb-ace2-5d60-bcec-478ba85908b0
[2021-06-04 10:16:45.901] [info] Update for version 1.1.4 is not available (latest version: 1.1.4, downgrade is allowed).
[2021-06-04 10:17:45.181] [info] Connected to socket true
[2021-06-04 10:17:45.533] [info] Received response from the socket
[2021-06-04 10:17:45.534] [info] Desktop editor loading is allowed. 
[2021-06-04 10:17:49.421] [error] ai nodes installation error Error: Command failed: npm uninstall "@uhuru/enebular-ai-contrib"
/bin/bash: npm: コマンドが見つかりません

    at ChildProcess.exithandler (child_process.js:312:12)
    at ChildProcess.emit (events.js:315:20)
    at maybeClose (internal/child_process.js:1021:16)
    at Socket.<anonymous> (internal/child_process.js:443:11)
    at Socket.emit (events.js:315:20)
    at Pipe.<anonymous> (net.js:674:12)

[2021-06-04 10:17:49.532] [info] 4 Jun 10:17:49 - [info] 

Welcome to Node-RED
===================

[2021-06-04 10:17:49.535] [info] 4 Jun 10:17:49 - [info] Node-RED バージョン: v1.0.5-alpha.15
[2021-06-04 10:17:49.536] [info] 4 Jun 10:17:49 - [info] Node.js  バージョン: v12.18.3
[2021-06-04 10:17:49.538] [info] 4 Jun 10:17:49 - [info] Linux 5.4.51-v7l-enable-DDR-mode arm LE
[2021-06-04 10:17:49.575] [info] 4 Jun 10:17:49 - [info] パレットエディタを無効化 : npmコマンドが見つかりません
[2021-06-04 10:17:49.581] [info] 4 Jun 10:17:49 - [info] パレットノードのロード
[2021-06-04 10:17:50.906] [info] [DEBUG] getModuleInfo():
[2021-06-04 10:17:50.907] [info] [DEBUG] moduleNodes: {}
[2021-06-04 10:17:50.913] [info] [DEBUG] getModuleInfo():
[2021-06-04 10:17:50.914] [info] [DEBUG] moduleNodes: {}
[2021-06-04 10:17:50.916] [info] [DEBUG] getModuleInfo():
[2021-06-04 10:17:50.917] [info] [DEBUG] moduleNodes: {}
[2021-06-04 10:17:50.928] [info] [DEBUG] getModuleInfo():
[2021-06-04 10:17:50.930] [info] [DEBUG] moduleNodes: {}
[2021-06-04 10:17:50.945] [info] [DEBUG] getModuleInfo():
[2021-06-04 10:17:50.946] [info] [DEBUG] moduleNodes: {}
[2021-06-04 10:17:50.948] [info] [DEBUG] getModuleInfo():
[2021-06-04 10:17:50.949] [info] [DEBUG] moduleNodes: {}
[2021-06-04 10:17:50.951] [info] [DEBUG] getModuleInfo():
[2021-06-04 10:17:50.952] [info] [DEBUG] moduleNodes: {}
[2021-06-04 10:17:50.954] [info] [DEBUG] getModuleInfo():
[2021-06-04 10:17:50.955] [info] [DEBUG] moduleNodes: {}
[2021-06-04 10:17:58.817] [info] ##### enebular deploy ####
[2021-06-04 10:17:58.837] [info] ##### reload flows ####
[2021-06-04 10:17:59.034] [info] 4 Jun 10:17:59 - [info] Dashboard version 2.26.1 started at /ui
[2021-06-04 10:17:59.635] [info] 4 Jun 10:17:59 - [info] コンテキストストア : 'default' [module=memory]
[2021-06-04 10:17:59.718] [info] 4 Jun 10:17:59 - [info] フローを開始します
[2021-06-04 10:17:59.746] [info] 4 Jun 10:17:59 - [info] フローを開始しまし
```

## 原因と対策

原因：
npmコマンドが見つからない。

対策：
Node.js v12.xの最新版をインストールする。(npmコマンドも合わせてインストールされる。)

https://github.com/nodesource/distributions

```bash
$ curl -fsSL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt-get install -y nodejs
```

### 実行ログ

```bash
[2021-06-04 11:19:33.523] [info] Disabling sandbox
[2021-06-04 11:19:33.533] [info] ==========================================
[2021-06-04 11:19:33.534] [info] Running on linux
[2021-06-04 11:19:33.535] [info] Architecture arm
[2021-06-04 11:19:33.535] [info] Base dir /root/.config/enebular-editor
[2021-06-04 11:19:33.536] [info] Base url https://enebular.com/
[2021-06-04 11:19:33.536] [info] Base dir was cleaned
[2021-06-04 11:19:33.536] [info] ==========================================
[2021-06-04 11:19:34.633] [info] Checking for update
[2021-06-04 11:19:36.365] [info] Update for version 1.1.4 is not available (latest version: 1.1.4, downgrade is allowed).
[2021-06-04 11:19:54.254] [info] Connected to socket true
[2021-06-04 11:19:54.627] [info] Received response from the socket
[2021-06-04 11:19:54.628] [info] Desktop editor loading is allowed. 
[2021-06-04 11:20:12.965] [info] ai nodes installed!
[2021-06-04 11:20:13.076] [info] 4 Jun 11:20:13 - [info] 

Welcome to Node-RED
===================

[2021-06-04 11:20:13.079] [info] 4 Jun 11:20:13 - [info] Node-RED バージョン: v1.0.5-alpha.15
[2021-06-04 11:20:13.081] [info] 4 Jun 11:20:13 - [info] Node.js  バージョン: v12.18.3
[2021-06-04 11:20:13.082] [info] 4 Jun 11:20:13 - [info] Linux 5.4.51-v7l-enable-DDR-mode arm LE
[2021-06-04 11:20:13.914] [info] 4 Jun 11:20:13 - [info] パレットノードのロード
[2021-06-04 11:20:15.371] [info] [DEBUG] getModuleInfo():
[2021-06-04 11:20:15.372] [info] [DEBUG] moduleNodes: {}
[2021-06-04 11:20:15.377] [info] [DEBUG] getModuleInfo():
[2021-06-04 11:20:15.378] [info] [DEBUG] moduleNodes: {}
[2021-06-04 11:20:15.381] [info] [DEBUG] getModuleInfo():
[2021-06-04 11:20:15.382] [info] [DEBUG] moduleNodes: {}
[2021-06-04 11:20:15.383] [info] [DEBUG] getModuleInfo():
[2021-06-04 11:20:15.384] [info] [DEBUG] moduleNodes: {}
[2021-06-04 11:20:15.391] [info] [DEBUG] getModuleInfo():
[2021-06-04 11:20:15.392] [info] [DEBUG] moduleNodes: {}
[2021-06-04 11:20:15.401] [info] [DEBUG] getModuleInfo():
[2021-06-04 11:20:15.403] [info] [DEBUG] moduleNodes: {}
[2021-06-04 11:20:15.405] [info] [DEBUG] getModuleInfo():
[2021-06-04 11:20:15.407] [info] [DEBUG] moduleNodes: {}
[2021-06-04 11:20:15.409] [info] [DEBUG] getModuleInfo():
[2021-06-04 11:20:15.410] [info] [DEBUG] moduleNodes: {}
[2021-06-04 11:20:15.411] [info] [DEBUG] getModuleInfo():
[2021-06-04 11:20:15.412] [info] [DEBUG] moduleNodes: {}
[2021-06-04 11:20:23.085] [info] ##### enebular deploy ####
[2021-06-04 11:20:23.088] [info] ##### reload flows ####
[2021-06-04 11:20:23.271] [info] 4 Jun 11:20:23 - [info] Dashboard version 2.26.1 started at /ui
[2021-06-04 11:20:23.818] [info] 4 Jun 11:20:23 - [info] コンテキストストア : 'default' [module=memory]
[2021-06-04 11:20:23.978] [info] 4 Jun 11:20:23 - [info] フローを開始します
[2021-06-04 11:20:24.005] [info] 4 Jun 11:20:24 - [info] フローを開始しました
```

無事にパレット管理メニューが表示されました！

![スクリーンショット 2021-06-04 18.44.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/ab3d98af-ca3a-7ebb-278b-2901f392f163.png)