🍣

Node.JSをアップデートしてMisskeyを壊したので直した

2023/09/19に公開

とりあえずの経緯

5W1H Description
いつ 2023/09/18 20時過ぎ
どこで 自宅
誰が 私自身
何を 互換性を考えずNode.JSのバージョンを上げてしまった
なぜ 最新のバージョンが良いな!と思った
どのように 覚えていない←ヤバい

といったアホみたいなことをやってしまった。

どのように直したか

ひとまず、Node.JSのバージョンを下げることで解決した。
具体的にはNode.JSはv20.5.0がよいと助言を頂いたのでソレを実行。

ひとまずnodejs, npmをすべてアンインストールした上で作業している。

アンインストール

sudo apt purge --remove nodejs npm

n を用いてInstallした場合は以下のコマンドで削除 参考資料

sudo rm -rf /usr/local/bin/node
sudo rm -rf ~/.npm

再インストール 参考資料

sudo apt install nodejs npm

Node.JSをnで管理させるため置き換えた上でv20.5.0をインストール

sudo npm install n -g
sudo n 20.5.0 # 今回はv20.5.0を指定している。バージョンが異なる場合は適宜変更すること
sudo apt purge --remove nodejs npm

おそらくこれで解決するはず。

途中で詰まったこと

aptからNode.JSとnpmをインストールしようとしたらdependency errorが出た

このサイトみたいなエラーが出たわけだが、結局サイトを参考にしても治らなかった。
そこでaptitudeを用いて依存関係の処理を委ねて解決した。

sudo apt install aptitude
sudo aptitude install nodejs npm
# その後はY, nを適宜選択していく

Node.JSを再インストールしたらDaemonを用いてMisskeyが起動しなくなった

なんでか/usr/local/bin/npmを指定しても/usr/bin/npmを指定しても起動しなかった。
そこで公式ドキュメントの実験起動NODE_ENV=production pnpm run startを参考にしてExecStartを書き換えたところ起動した。

以下は私の環境のDaemon Serviceである。
参考程度に

まとめ

  • Node.JSのバージョンを上げるときは互換性を考えて上げること。
  • また、Node.JSのバージョンを上げるときはnを用いて管理すること。
  • 無闇矢鱈に実行すると後から色々と面倒なことになるので注意すること。

以上

参考文献

Discussion