Mastodon をアップデートする

Mastodon (マストドン)とは

Mastodon とは、分散型のオープンソースなソーシャルネットワークです。
詳細については先日あげた以下の記事をご参照下さい。
Mastodon を FreeBSD で動かす

アップデートについて

運用していくなかで避けて通れないのがアップデートです。
Redmine を始め、Rails を使ったシステムのアップデートは独特なので(とはいえ他のフレームワークでもそれぞれ流儀のようなものがありますが)、個人的な記録として残しておこうと思います。
ただ途中勘違いしていた点があるのでご参考程度で……。

アップデート手順

git のローカルリポジトリを更新します。

git fetch

どのような tag が有るかは以下で見られます。

git tag

ローカルで変更を行っている場合、一旦待避することが出来ます。

git stash

ちなみに待避されたものは以下で確認できます。

git stash list
git stash list -p

念のためディレクトリをまるまるバックアップして、いよいよ適用します。
(git の別ブランチで管理する方が今時かもしれません)

今回は v1.3.2 を適用します。

git checkout refs/tags/v1.3.2

先ほど stash で待避した変更を適用します。

git stash apply

ファイルの更新はこれでおしまいです。

ここからは環境を更新します。
まずは環境変数を設定します。
上が csh 系、下が bsh 系で、環境に合わせてどちらか片方。

setenv RAILS_ENV production
export RAILS_ENV=production

bundle install で Ruby 関連のソフトウェアを更新します。

bundle install

この辺からちょっと曖昧です……。
後述の precompile でエラーが出て、yarn が無くなっていたように思えたのでインストールしました。
その後、stringz と prop-types が無いというエラーだったので個別にインストールして解決しました。

npm install yarn
npm install stringz
npm install prop-types

しかし後から調べてみたところ yarn でそのあたりが解決できるそうで、以下が正解だった模様。
良く見るとリリースにちゃんと書いてありますね……。

yarn install

この辺はあまり知らないところなのでどきどきしますね……。
ここまで来たら、以下の要領で DB と assets を更新して完了です。

bundle exec rails db:migrate
bundle exec rails assets:precompile

お疲れ様でした。

Mastodon の今後

現在の Mastodon はあまりスケールしないのかもしれません。
Pawoo では多すぎるフォローが負荷になるということで、多すぎる人にアンフォローをお願いするということがありました。
しかしながら現在凄い勢いで改良されているので、実装上の問題については今後解消するのだと思います。
しばらくは目が離せないでしょう。

またインスタンスがなくなった場合も負荷になるようなので、正しいインスタンスのたたみ方みたいな記事も今後出るのかもしれません。

私の Mastodon アカウントはこちらですので宜しければフォローして下さい。
自インスタンス
[email protected]
Kirakiratter (アイカツ!)
[email protected]

参考

FreeBSD,technical

Posted by yokky