Node.js を ReadyNAS 202 で動かす

Node.js を ReadyNAS 202 で動かす

自宅の IoT サーバーとして MacBook Air (13-inch, Mid 2011)Debian をインストールして Node.js など細かいサービスを動かしている。新しい iMac の購入を期に、Mac まとめて処分することにしたので、後継機として Raspberry Pi でも買おうかと思っていた。

ふと、日常使いしている NAS(NETGEARReadyNAS 202)が Debian GNU/Linux 8 (Jessie) ベースだったことを思い出した。SSH でログインすることができるし、多少古いものの apt を使って各種パッケージもインストールできる。CPU は Annapurna の AL212 Dual Core 1.4GHz CPU(ARM Cortex A15)だ。M1 チップと同じ系譜である ARMアーキテクチャで、iPhone で言うと iPhone 5s クラスの 64bit CPU でメモリも 2GBある。

よし、NAS は常時稼働なのだから ReadyNAS 202 へもろもろを移行しよう。電気代の節約にもなるはずだ。node.js が使えないと困るので、まずは node.js を動かすところから手を付けることにした。


node.js のサイトには ARM v7 向けバイナリパッケージもあるが、下調べしたところ ReadyOS では動作しないようだった(試してはない)。今回はソースを GitHub から持ってきて make することにする。いろいろと試した結果 node.js v12 のインストールに落ち着いた。

以下、手順。
なにはともあれ、まずは git clone からはじめよう。

# git clone https://github.com/nodejs/node
Cloning into 'node'...
remote: Enumerating objects: 669488, done.
remote: Counting objects: 100% (1078/1078), done.
remote: Compressing objects: 100% (495/495), done.
remote: Total 669488 (delta 654), reused 940 (delta 579), pack-reused 668410
Receiving objects: 100% (669488/669488), 676.99 MiB | 10.75 MiB/s, done.
Resolving deltas: 100% (500480/500480), done.
Checking connectivity... done.
Checking out files: 100% (33324/33324), done.

node.js の最新バージョンは v16.2.0、推奨バージョンは v14.17.0(メンテナンス LTS)だが、どちらも ReadyOS のサポートしているライブラリやビルド環境が古いためそのままでは configure が通らない。バージョンを順に落としていったところ v12.22.1 であれば configure が通った。

v12系はメンテナンス LTS であり、2022年4月までサポートされる。v12系の最新バージョンをチェックアウトして build する。

# cd node/
# git checkout v12.22.1
Checking out files: 100% (19764/19764), done.
Note: checking out 'v12.22.1'.

# git checkout -b build
Switched to a new branch 'build'
# git branch
* build
master

# export CCFLAGS='-march=armv7-a'
# export CXXFLAGS='-march=armv7-a'
# ./configure
# make

make には数時間は必要なので、今晩はさっさと寝てしまおう。

# make install
# node -v
v12.22.1
# npm -v
6.14.1

これで node.js のインストールは完了。make には非常に時間がかかるが、実行時のリソース消費は微々たるものだ。あとはいつものように npm でパッケージをインストールをしていく。
HomebridgeŌURA Cloud API clientgoogle-home-notifier などなど...好きなパッケージをインストールしよう。

Ready NAS 202 キビキビと動作するなぁ ARM Cortex A15 も侮れないなと部屋を見回すとなんと ARM プロセッサだらけになっていた。

Lenovo の ThinkPad T580(Coire i7 8650)があるので Intel プセッサ機は1台だけだ。なかなか感慨深いものがある。

Next

コマンドラインから macOS をコントロールする

Related