0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

mastodon インスタンスを v2.6.5 から v3.2.0 までバージョンアップする

Last updated at Posted at 2020-08-13

これは何?

mastodon v2.6.5 という石器時代のバージョンからイケイケの最新バージョンまで更新したくなった。一気に1年分以上の更新を取り込むので不安だったが、うまくいった。バージョン更新時の注意についてメモを残しておく。

なお、自分は ConoHa の Mastodon アプリケーションイメージを使っている。このイメージでは Docker を使用していないので、本記事を読む人は注意が必要。

注意点のメモ

v2.6.5 --> v3.0.0

段階的に上げるのめんどいので v2.6.5 から一気に v3.0.0 に上げたい。
v2.6.5 から v3.0.0 までのリリースノートを見るに、非 Docker 環境では Ruby のバージョン更新が必要らしい。
それさえしておけば v2.6.5 から一気にバージョンアップしてもよさそう。

注意:Ruby と gem を更新する必要がある

v3.0.0 のリリースノート を見るとRuby 2.6.5 が必要らしい。
自分は非 Docker 環境なので、手動で Ruby を指定バージョンまで更新する。
まずは今入っている Ruby 2.5 系をアンインストールする。

> apt-get remove ruby2.5 ruby2.5-dev

次に Ruby 2.6 をインストールする

> apt-get install ruby2.6 ruby2.6-dev

ログを見ると、Ruby v2.6.5じゃなくて Ruby v2.6.6 がインストールされたことがわかった。まぁいいか。
続けて gem も更新しておく。

gem update --system=2.6.6

あとは普通に v3.0.0 のリリースノートの "Upgrade notes" を参照して、指定の更新手順を実行するだけ。
これで v2.6.5 から v3.0.0 への更新はできた。

v3.0.0 --> v3.2.0

次は v3.0.0 から、2020年8月13日時点で最新の v3.2.0 に更新する。

注意:nodejs を更新する必要がある

v3.1.0 のリリースノートを見ると nodjs のバージョンを 10 系にしろとある。自分の環境には8系が入ってるのでまずは削除

sudo apt-get remove nodejs

リリースノートにあるように、指定のURLから setup_10.x を入手して apt install する。

> sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
> sudo apt install nodejs

これでOK。あとは普通に v3.2.0 のリリースノートの "Upgrade notes" を参照して、指定の更新手順を実行するだけ……のはずが、自分の環境ではエラーが起きた。次で説明する。

注意:trim-right をインストールする必要がある

お決まりのコマンドでアセットをプリコンパイルしようとすると、以下のエラーが出た

> sudo RAILS_ENV=production bundle exec rails assets:precompile
ERROR in ./node_modules/css-loader/dist/runtime/api.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
Error: /home/mastodon/live/node_modules/css-loader/dist/runtime/api.js: Cannot find module 'trim-right'

trim-right が見つからないのが原因らしいのでインストールする。

> sudo npm install trim-right

インストール完了後、再度下記コマンドを試すと成功した

> sudo RAILS_ENV=production bundle exec rails assets:precompile

注意:Redis のバージョンを v4.0.0 以上にする必要がある

ここまでの手順を完了して各種サービスプロセスを再起動し、無事インスタンスの更新が完了した~と思ったら何故か画像やファイルの投稿ができなくなっていた。怪しい……ということで各種 mastodon サービスプロセスのログを見てみることに。すると sidekiq がなんかおかしいことがわかった。

> journalctl -xf -u mastodon-*.service 
-- Unit mastodon-sidekiq.service has finished shutting down.
Aug 13 14:31:56 150-95-201-113 systemd[1]: Started mastodon-sidekiq.
-- Subject: Unit mastodon-sidekiq.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mastodon-sidekiq.service has finished starting up.
--
-- The start-up result is done.
Aug 13 14:32:00 150-95-201-113 bash[17596]: 2020-08-13T05:32:00.410Z pid=17596 tid=aaguo INFO: Booting Sidekiq 6.1.0 with redis options {:url=>"redis://localhost:6379/0"}
Aug 13 14:32:03 150-95-201-113 bash[17596]: 2020-08-13T05:32:03.976Z pid=17596 tid=aaguo INFO: Booted Rails 5.2.4.3 application in production environment
Aug 13 14:32:03 150-95-201-113 bash[17596]: 2020-08-13T05:32:03.977Z pid=17596 tid=aaguo INFO: Running in ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-linux-gnu]
Aug 13 14:32:03 150-95-201-113 bash[17596]: 2020-08-13T05:32:03.977Z pid=17596 tid=aaguo INFO: See LICENSE and the LGPL-3.0 for licensing details.
Aug 13 14:32:03 150-95-201-113 bash[17596]: 2020-08-13T05:32:03.977Z pid=17596 tid=aaguo INFO: Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org
Aug 13 14:32:03 150-95-201-113 bash[17596]: 2020-08-13T05:32:03.978Z pid=17596 tid=aaguo WARN: RuntimeError: You are connecting to Redis v3.0.6, Sidekiq requires Redis v4.0.0 or greater
Aug 13 14:32:03 150-95-201-113 bash[17596]: 2020-08-13T05:32:03.978Z pid=17596 tid=aaguo WARN: /home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.1.0/lib/sidekiq/cli.rb:62:in `run'
Aug 13 14:32:03 150-95-201-113 bash[17596]: /home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.1.0/bin/sidekiq:31:in `<top (required)>'
Aug 13 14:32:03 150-95-201-113 bash[17596]: /home/mastodon/live/vendor/bundle/ruby/2.6.0/bin/sidekiq:22:in `load'
Aug 13 14:32:03 150-95-201-113 bash[17596]: /home/mastodon/live/vendor/bundle/ruby/2.6.0/bin/sidekiq:22:in `<main>'
Aug 13 14:32:03 150-95-201-113 systemd[1]: mastodon-sidekiq.service: Main process exited, code=exited, status=1/FAILURE
Aug 13 14:32:03 150-95-201-113 systemd[1]: mastodon-sidekiq.service: Unit entered failed state.
Aug 13 14:32:03 150-95-201-113 systemd[1]: mastodon-sidekiq.service: Failed with result 'exit-code'.
Aug 13 14:32:04 150-95-201-113 systemd[1]: mastodon-sidekiq.service: Service hold-off time over, scheduling restart.
Aug 13 14:32:04 150-95-201-113 systemd[1]: Stopped mastodon-sidekiq.
-- Subject: Unit mastodon-sidekiq.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

ログをよく見ると RuntimeError: You are connecting to Redis v3.0.6, Sidekiq requires Redis v4.0.0 or greater とある。Sidekiq が Redis v4.0.0 を必要としている。環境にインストールされていたのは v3.0.6 と古い。いろいろググってるとmomoseijin 様の記事がヒットした。以下のコマンドで Redis を更新できた。ありがとうございます!

> add-apt-repository ppa:chris-lea/redis-server
> apt update && apt upgrade

Sidekiq を再起動するとログからもエラーらしき文言は消え、画像ファイル投稿も無事できるようになった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?