Mastodon 4.3.0

Mastodon

2日前に Mastodon 4.3.0 がリリースされたからアップグレードする。
詳細は v4.3.0 リリースノートのとおりで変更点が多々ある。とりあえずアップグレードしてから確認していこう。

 

◇Yarn のアップグレード

これ以降、基本的にユーザー mastodon で実行する。作業ディレクトリは ~/live。
インストールするバージョンは 4.5.0。

sudo su - mastodon
cd ./live
corepack enable
corepack prepare yarn@4.5.0 --activate

 

ログアウトして一般ユーザーに戻ってから、再度ユーザー mastodon でログインして確認する。

cd ./live
yarn --version
4.5.0

 

◇Ruby 3.3.5 にアップデート

Ruby 3.2.5 から 3.3.5にアップデートする。
3.2.5 のままでもいいけどこの際なので。

rbenv install -l
3.1.6
3.2.5
3.3.5
jruby-9.4.8.0
mruby-3.3.0
picoruby-3.0.0
truffleruby-24.0.2
truffleruby+graalvm-24.0.2

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.3.5
・・・
・・・
==> Installed ruby-3.3.5 to /home/mastodon/.rbenv/versions/3.3.5

 

確認する。

ruby -v
ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux]

 

~/live/.ruby-versionを編集してから(3.2.5 -> 3.3.5に修正)マージする。

git add .ruby-version

 

◇Mastodon 4.3.0 のインストール

git fetch && git checkout v4.3.0
bundle install
yarn install --immutable

 

シークレットの生成と反映。

RAILS_ENV=production bin/rails db:encryption:init
Add these secret environment variables to your Mastodon environment (e.g. .env.production): 

ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=Fnc********
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=vNQ********
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=wfh********

メッセージに従って、.env.production の最終行以下に3行を貼り付ける。

 

続いてアセットを事前コンパイルする。

RAILS_ENV=production bundle exec rails assets:precompile

 

環境変数を設定してデプロイ前のデータベースのマイグレートを実行する。

SKIP_POST_DEPLOYMENT_MIGRATIONS=true
RAILS_ENV=production bundle exec rails db:migrate

 

一般ユーザーに戻って Mastodon を再起動する。

sudo systemctl restart mastodon-* 

 

ユーザー mastodon に戻ってから再度、データベースのマイグレートを実行する。

cd ~/live
RAILS_ENV=production bundle exec rails db:migrate

 

全文検索 Elasticsearch を使用している場合は検索インデックスを再構築する。

RAILS_ENV=production bin/tootctl search deploy --only=accounts

 

古い Ruby を削除する。

rbenv uninstall 3.2.5

 

◇その他

ImageMagick は Mastodon でのサポートが廃止になって、libvips に置き換わる予定。
とりあえず libvips をインストールしてから ~/live/.env.production に MASTODON_USE_LIBVIPS=true を追加してみたけれど、管理画面で確認する限りは ImageMagick のまま。
削除すればいいのかもしれないけれど、今すぐ ImageMagick がダメな訳じゃないから暫くはこれまでどおりにしよう。

sudo apt install libvips
sudo ldconfig

 

以上でとりあえずアップグレード完了。