自宅のMastodonのホームタイムラインをやっと復旧させた話

自宅のMastodonのインスタンスを2.3.0に更新しようと思って、いつものように、ちゃっちゃと更新をかけたら、ホームタイムラインが「読み込み中」のまま進まなくなってしまいました。

作業の最後のほうで、

$ RAILS_ENV=production bundle exec rails assets:precompile
という作業をするんですが、まあ、エラーを吐き出しているわけです。どうも、webpackerとuglify-jsの食い合わせがおかしくなっているようです。

とりあえず、個人的には、ホームタイムラインも連合タイムラインも大差ないし、Pawooとか、スマホ版のクライアントからは普通に見えるので、この辺は後回しにして、バージョンアップを繰り返していけばどっかで解消するだろうくらいに思っていたのです。が。

2.3.1になっても、2.3.2になっても直らないじゃないですか!つかそもそも誰も直るなんていってないし!

ということで、しょうがないから、mastodon/prod をまっさらから 2.3.2で構築することにしました。データも、肝となるサービスも、config fileもあるから、どうにでもなるだろう、と。

実際、mastodon/prodの再構築はさくさく進みまして、あっさり、ホームタイムラインは帰ってきました。なんだ、もっと早くやっとけばよかった。

が、今度は、mastodon-streamingという、画像のサーブをしているサービスがこけるようになってしまいました。調べると、

# node ./streaming/index.js -c
が死んでいる、ということが判明。

で、エラーを見ると、expressがないよ、という。ならば、と、

$ npm install express
で、express を追加してやって再実行。で、まだ死ぬ。今度は、npmlogがない、という......。

と、いうようなことを繰り返した結果、以下のパッケージが入ってないのが動かない原因だったと判明。

  • express
  • npmlog
  • uws
  • uuid

これらを手動で追加してやった結果、mastodon-streamingも無事に動くようになりました。ふぅ。

どうやら、npm 5.8.0(node v8.0.0)に更新したら、yarnのパッケージの依存関係と、この辺のモジュール群との整合性が会わなくなってしまったようす。まあ、もうやっちまったもんは仕方ないので、今後もこのあたりをちょこちょことつじつま合わせてやらないといけないかもしれないけれど、なんとかなっているのでよしとしておきましょうか。