Mastodon v3.1.0、node v10.13以上が必要だってよ

いろいろ面倒くさいので、この際、nodenvを使って切り替えましょうか。

nodejsとyarnをnodenvでインストールする

mastodonユーザーでログインした状態にします。

sudo -iu mastodon  

nodenvを取ってきます。

git clone https://github.com/nodenv/nodenv.git ~/.nodenv  
cd ~/.nodenv && src/configure && make -C src  

.bashrcの末尾に、nodenvのPATHと初期化を追記します。

nano ~/.bashrc  

下記の内容を~/.bashrcの末尾に追加します。

export PATH="$HOME/.nodenv/bin:$PATH"  
eval "$(nodenv init -)"  

一旦シェルを抜けて、もう一度入り直して……

logout  
sudo -iu mastodon  

node installできるようにプラグインを追加します。

mkdir -p "$(nodenv root)"/plugins  
git clone https://github.com/nodenv/node-build.git "$(nodenv root)"/plugins/node-build  

一緒にyarnをインストールできるようにするプラグインを追加します。

git clone https://github.com/pine/nodenv-yarn-install.git "$(nodenv root)/plugins/nodenv-yarn-install"  

nodenvをupdateするためのプラグインを追加します。

git clone https://github.com/nodenv/nodenv-update.git "$(nodenv root)"/plugins/nodenv-update  

nodenvでインストールできるバージョン一覧を確認して……

nodenv install -l  

いまだと10.20.0か12.16.2ですかね。

nodenv install 12.16.2  

liveの一つ上、mastodonユーザーのホームディレクトリで、ローカルバージョンを指定。

nodenv local 12.16.2  

これで~/.node-versionというファイルが作成されて、中にバージョン番号が書き込まれる。
ここで、nodeのバージョンを確認しておく。

node -v  

これでyarn installが通るようになるハズ。

cd live  
yarn install --pure-lockfile  

systemdのstreamingの設定を変更する

systemdで起動するstreaming、そのままだとシステムのnodeを使うので、さっきnodenvで入れたnodeを方を使うように変更します。

sudo -e /etc/systemd/system/mastodon-streaming.service   

ExecStart=/usr/bin/node ./streamingExecStart=/home/mastodon/.nodenv/shims/node ./streamingに変更します。

streaming再起動。

sudo systemctl restart mastodon-streaming  

アップデートする時

nodeもyarnもバージョンあがるので、updateします。
mastodonユーザーで作業です。

sudo -iu mastodon  
nodenv update  

あとは、インストールした時と同じで、入れられるバージョン確認して、installして、localして、liveでyarn installする感じです。