ゎぃゎぃのおもちゃ箱

一般的な大学生の遊び場所

chinachuをupdateしたら壊れた話

f:id:yy_kuso:20190630031749p:plain

事の発端

上記の記事から1年が経ち,なんとなく録画鯖のソフトウェアの更新をしておこうと思い

./chinachu updaterを実行して

pm2 restartしたら

┌───────────────────┬────┬──────┬───────┬─────────┬─────────┬────────┬─────┬──────────┬──────┬──────────┐
│ App name          │ id │ mode │ pid   │ status  │ restart │ uptime │ cpu │ mem      │ user │ watching │
├───────────────────┼────┼──────┼───────┼─────────┼─────────┼────────┼─────┼──────────┼──────┼──────────┤
│ chinachu-operator │ 3  │ fork │ N/A   │ errored │ 0       │ 0      │ 0%  │ 0 B      │ root │ disabled │
│ chinachu-wui      │ 2  │ fork │ N/A   │ errored │ 0       │ 0      │ 0%  │ 0 B      │ root │ disabled │
│ mirakurun-server  │ 1  │ fork │ 26034 │ online  │ 5       │ 0s     │ 0%  │ 5.8 MB   │ root │ disabled │
└───────────────────┴────┴──────┴───────┴─────────┴─────────┴────────┴─────┴──────────┴──────┴──────────┘

と出力するようになった.安易に更新したらぶっ壊れた.

原因究明

試しに./chinachu service operator executeしてみたところ,問題なく実行できた. つまりはpm2にて実行する際に失敗しているようだった. pm2 delete chinachu-wui chinachu-operatorで一度削除した後,pm2 start processes.jsonで登録し直したら,

[PM2][ERROR] Interpreter .nave/node does not seem to be available
[PM2][ERROR] Interpreter .nave/node does not seem to be available

と出力された.つまりは.nave/nodeがねぇよってことだ.

.nave/node.nave/installed/{version}/bin/nodeへのリンクのようだったがその存在はなかった. というか,{version}ディレクトリすらなかった.

なぜ?

./chinachu installer3) Node.js Environmentを試してみて,nodejsの再インストールをしてみたところ,以下のようなログを吐いた.

/home/chinachu/chinachu/.nave/nave.sh: 行 237: shasum: コマンドが見つかりません
shasum mismatch, expect 6c35b85a7cd4188ab7578354277b2b2ca43eacc864a2a16b3669753ec2369d52, got 6c35b85a7cd4188ab7578354277b2b2ca43eacc864a2a16b3669753ec2369d52

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Binary install failed, trying source.
`/home/chinachu/chinachu/.nave/node' -> `/home/chinachu/chinachu/.nave/installed/10.15.3/bin/node'
`/home/chinachu/chinachu/.nave/npm' -> `/home/chinachu/chinachu/.nave/installed/10.15.3/bin/npm'
done.

./chinachu updaterではログが爆速で流れるので気づかなかったが,よく見たらここで失敗していた. どうやらコマンドshasumが見つかってないみたいだ.

sha1sumとかsha256sumとかはあるんだが…

直し方

$ sudo yum install perl-Digest-SHA

これでshasumコマンドがインストールされる.次に./chinachu installer3を選択すれば,今度は何事もなくインストールが終わる.

これでpm2 restart allしてみたら無事chinachuが起動してくれた. 一安心!!!

余談

ChinachuのIssuesにこんなのがあったのだが,もしかしたらこの辺の問題だったのではなかろうか.

この方は同じ症状になったが,/usr/bin/から持ってくることで解決していたようだ.