ラズパイZeroWでなでしこ3を動かしたい! あるいは、armv6lのラズパイに最新(v12以上)のnode.jsを入れたい!


やったこと

  1. 今さらながら、ラズパイをSSH接続とVNC接続でノートパソコンから操作出来るようにする。
  2. ラズパイZeroWになでしこ3をインストールして、Hello Worldする。
  3. RaspberryPi Zero W (armv6l)に、最新(v12以上)のnode.jsをインストールする。

発端

 YouTubeのなでしこ公式チャンネルで、『なでしこ3でラズパイを動かしてみよう!』とゆうことだったので、ノリで買ったはいいけど、Raspbianを入れただけでもう三年がとこ放置している Raspberry Pi Zero WH を引っ張り出す。

 ちっちゃ!

なでしこ以前の準備

 今回やった私の覚え書きです。ムダに長いですスミマセン。読み飛ばして下さい。
 SSH接続とVNC接続で、ノートパソコンから操作出来るようにしました。

OS

 Raspbianだけは既に入れてある。
 どうやらRaspbianからRaspberry Pi OSに名称かわったっぽいけれど。

https://www.raspberrypi.org/software/

 とりまアップデート。

sudo apt-get update       # パッケージリストの更新
sudo apt-get upgrade      # パッケージのアップグレード
sudo apt-get dist-upgrade # ディストリビューションの更新

 でぃすとりびゅーしょん? とは何ぞ??(ほったらかしすぎたせいで、なかなかな時間が掛かるので、お勉強している)

https://wa3.i-3-i.info/word12473.html

 Linuxのカーネルとかソフトウェアとか必要なものをひとまとめにしたものってことラシイ。それをOSって言うんじゃないのか。りなっくすさんは難しい;
 
 途中、y/nの入力を求められる場面もあるので、完全放置じゃいけません。
 読めもしないけど、すべてyで進めて行きます。

SSH

 ケースとminiHDMI変換のついたやつを買っていたからTVに映せるんですけれどね。
 前のOSアップグレードも直でマウス差して、Bluetoothのキーボードつないでやったしねw
 やっぱり、いちいちNintendo SwitchからHDMIケーブルを引っこ抜かなきゃならないの面倒だから、ノートパソコンでできるようにしたい。
 と言ってもTVに映してGUIが使えるから設定変更はカンタンで、[左上のアプリケーションメニュー]→[設定]→[Raspberry Piの設定]→[インターフェイス]でSSHを有効にチェックするだけ!
 TeraTermをだうんろーどしてくる。

 ホストは、raspberrypi.local
 または、ターミナルで

ifconfig

 wlan0:inetの価がIPアドレス。
 
 SSHにチェック。SSH versionはSSH2
 次の画面で、

ユーザー名:pi
パスワード:raspberry
 (実際は、[Raspberry Piの設定]→[システム]でパスワードは変更しておく)

 緑と青でラズパイのコマンドプロンプトが表示されたら成功☆

pi@raspberrypi:~ $

 できました!
 コレで、ノートパソコンからラズパイが操作出来るようになりました。やったね!

めも

sudo poweroff  # 終了
sudo reboot    # 再起動

VNC

 でも、ワタクシやっぱりGUIがないとダメな人だから。
 TVに映ってるとおりを、ノートパソコンに映したい!
 RealVNCってものを使えば、出来るそうですよ☆
 とゆうわけで、[Raspberry Piの設定]→[インターフェイス]でVNCを有効にチェック。
 ラズパイ側のVNCサーバーが起動して、右上に、VNCのアイコンが発生。
 ここでパスワードを設定。
 おっと、これでifconfigとかしなくても、IPアドレス見れるじゃん。
 VNC Viewerをだうんろーどしてくる。
 上のバーに、ホスト名raspberrypi.local、またはIPアドレス。
 次の画面でパスワード。
 映りました! やったね!!

 ちなみに、VNCのアプリを入れれば、スマホにも映すことが出来るんですが、スマホの場合はVNC ViewerよりもbVNC Freeのほうがイイ感じでした。
 VNC Viewerでは、マウスカーソルを指でずるずる目的の場所まで引っ張っていってからタッチしなければならないとゆう、壊滅的な操作性なんですが、bVNC Freeは、タッチしたとこにマウスカーソルが飛んできてくれるんです☆

やっとなでしこ

なでしこ3とは

 日本語でプログラム出来るプログラミング言語です。
 v1はWindowsだけですが、v3はWebブラウザで動くのでいろんな端末で動きます☆

 なでしこ3はブラウザで動きますからね、ラズパイZeroWはWi-Fiが付いてますからね、Chromiumさんで簡易エディタを開けばすぐ出来ますけど、もちろんそうゆうこっちゃ無い。
 node.jsが動く端末にはインストールして使うこともできるんですね。web版とは違うnode版の命令が使えたりします。

動画

 とりあえず、動画見ましょう。
 YouTubeなでしこチャンネル 29回目『なでしこ3でラズパイを動かしてみよう!』

なでしこ3のインストール

 動画を見て驚いたのは、えっ、なでしこ3のインストール、超簡単になってないですか?!?!
 
 実は買った当時も1度、なでしこ3を入れてみたことはみたんです。
 「なでしこ3を動かすにはNode.jsが必要」とゆうわけで、まずはNode.jsをインストールする必要があって、さらにNode.jsを最新版にアップデートと、慣れてる人にはどってこと無いのでしょうが、コマンド多くてなかなかめんどーでした。
 しかも、アップデート中に謎のWARNが出まくり、結構な時間を掛けてようやく終わっても、やっぱりうまく行ってなくてなでしこ3が入れられなかったりと、単に私が慣れてなくて無能だったせいだと思いますが、とにかく相当な艱難辛苦だった記憶があります。(TVに映して違うキーボードだったから、若干操作も不自由でしたね。SSH接続大事!www)
 ともかく結局ナニが悪くて躓いたのかも、最終的にどうやって出来たのかも分からず・・・でしたorz
 
 ・・・が! なんと!!

 Raspberry Piでなでしこ3を動かそう

 簡単インストールコマンド、たったの一行!!!
 必要のコマンドが全部順番に実行されるようになっているんですね。
 とゆうわけで、もちろんアップデートも出来るだろうけど、一回Node.jsもなでしこ3もアンインストールして、何事も無かったかのように1からやってみます。

curl https://raw.githubusercontent.com/kujirahand/nadesiko3/master/installer/chromeos.sh | /bin/bash

 こんだけ! コピーするボタンもあるとゆう親切設計☆
 なかなかな時間がかかるので、なんかしながら地道に待ちます。

npm WARN notsup Unsupported engine for [email protected]: wanted: {"node":">=12"} (current: {"node":"10.24.1","npm":"6.14.12"})
npm WARN notsup Not compatible with your version of node/npm: [email protected]

+ [email protected]
added 109 packages from 67 contributors in 122.013s

 入りました!
 バージョンは3.2.24。(2021/7/27現在)
 ・・・が、またまた今回もエラーが出ていますよヽ(;´Д`)ノ
 前回の、びっちりWARNだらけになった時とは違うけど、どうもさくっと終わらないにゃぁ(´Д⊂ヽ
 どうやら、nodeのバージョンがサポート外だと、12以上入れろと言ってるラシイ・・・
 でも、とりあえず、なでしこさんは一応動きました☆

cnako3 -e 「こんにちは世界」と表示。
→こんにちは世界
cnako3 -e ナデシコバージョンを表示。
→3.2.24

 できた!

新しいnode.jsを入れたい

node.jsのバージョン・・・

 わりと最近、なでしこ3のnode.jsの対応バージョンがv12以上に変更されたっぽいのですよね。

https://github.com/kujirahand/nadesiko3/issues/1039

 ところが!

n lsr

 をしてみると・・・

11.15.0
11.14.0

(中略)

11.1.0
11.0.0
10.24.1
10.24.0
10.23.3

 一番新しいのは11.15.0だって!
 (インストールされたのは偶数番の最新10.24.1
 いろいろケンサクすると、ラズパイZeroWはarmv6lで、armv6lはnode.js v12から、サポート外となってしまったらしい。ひ、ひどい(´Д⊂ヽ

https://scrapbox.io/yuta0801/Node.js_v12%E3%81%8B%E3%82%89armv6l%E3%81%AE%E5%85%AC%E5%BC%8F%E3%83%93%E3%83%AB%E3%83%89%E3%81%8C%E6%8F%90%E4%BE%9B%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84

 でも、非公式ビルドがあるとゆうことが分かりました。

https://unofficial-builds.nodejs.org/download/release/

 最新は、v16.5.0(2021/7/27現在)みたい。

インストールする

 なでしこ3、動くっちゃあ動くから、いいっちゃあいいんだけど、なんか悔しいし折角だから入れてみたい!
 入れ方はここに書いてある。

https://github.com/nodejs/help/wiki/Installation

 英語だけど負けません! ぐーぐる翻訳さん助けて(>_<)/
 ・・・こんな感じ?

#環境変数
VERSION=v16.5.0
DISTRO=linux-armv6l
#だうんろーど
sudo wget https://unofficial-builds.nodejs.org/download/release/$VERSION/node-$VERSION-$DISTRO.tar.xz
#いんすとーる先
sudo mkdir -p /usr/local/lib/nodejs
#いんすとーる
sudo tar -xJvf node-$VERSION-$DISTRO.tar.xz -C /usr/local/lib/nodejs

 そして、さらに、.profileファイルを編集しなきゃならないラシイ。
 えっ、viなんてしりませんよ。ファイルマネージャーから/home/pi/.profileを探してテキストエディタで開いたよw VNCがだいかつやくだね!www
 最後にコレを追加。

#node.js
VERSION=v16.5.0
DISTRO=linux-armv6l
export PATH=/usr/local/lib/nodejs/node-$VERSION-$DISTRO/bin:$PATH

 編集して保存したら、profileを更新。。

. ~/.profile

 テスト。

node -v
→16.5.0
npm version
→{
  npm: '7.19.1',
  node: '16.5.0',
  v8: '9.1.269.38-node.20',
  uv: '1.41.0',
  zlib: '1.2.11',
  brotli: '1.0.9',
  ares: '1.17.1',
  modules: '93',
  nghttp2: '1.42.0',
  napi: '8',
  llhttp: '6.0.2',
  openssl: '1.1.1k+quic',
  cldr: '39.0',
  icu: '69.1',
  tz: '2021a',
  unicode: '13.0',
  ngtcp2: '0.1.0-DEV',
  nghttp3: '0.1.0-DEV'
}
npx -v
→7.19.1

 できました! やったね☆
 なでしこさんも、無事動きました。よきーよきー♪

おわります

 結局今回も、node.jsに振り回され、簡単にはいきませんでした。
 node.jsツラい(´Д⊂ヽ

 でも、おそらく新しいラズパイではこんなことも無く、一行でカンタンにインストールが完了するハズ!

 折角頑張ったから、もう少し何か遊んでみたい。