LoginSignup
2
1

Node-REDでkakasiを使う

Posted at

ちょいメモ

Raspberry Pi4のkubernetesクラスタ上にデプロイしているNode-REDのお話です。

functionノードでkakasiを使おうとしましたが、全く動きませんでした。
kakasi1.png

デバッグメッセージには以下のようにエラーが出ています。
kakasi3.png

よくわかりませんが、lib自体が無いので、以下のようにkakasi直下のkakasiディレクトリをlibにリネームしました。

$ kubectl exec -it node-red -- mv /.node-red/node_modules/kakasi/kakasi /.node-red/node_modules/kakasi/lib

あと、x64のkakasiコマンドを内包しているので、ソースコードをダウンロードしてarm64用にコンパイルして入れ替えれば良いです。

$ curl http://kakasi.namazu.org/stable/kakasi-2.3.6.tar.gz > kakasi-2.3.6.tar.gz
$ tar xzvf kakasi-2.3.6.tar.gz
$ cd kakasi-2.3.6/
$ ./configure
$ make
$ kubectl cp src/kakasi node-red:/.node-red/node_modules/kakasi/lib/bin/linux/kakasi

この2つの対策で、functionノードでkakasiが使えるようになります。

kakasi2.png

node.jsのモジュールは、たまにx64のコマンドをバイナリで内包してラッパーしているだけのものもあるので、アーキテクチャが違う場合はそのコマンドを再コンパイルするかOS上で動くアーキテクチャのものに入れ替える必要があります。

以下の記事でword2vecを利用した際もそうでした。

fileコマンドで調べれば、以下のようにx86-64と出てくるので、Rapberry Piユーザは意識しておくと良いです。

# file kakasi
kakasi: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=b46c5d9e566b9f8168710ad616e18f60dcf10fed, with debug_info, not stripped

おわり。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1