これから、Ubuntu 22.04 LTSでMastodonを動かす機会が増えてくると思いますが、はまったやつを2点、共有しておきます。
■ /home/mastodonのパーミッションが変わり、Mastodonのフロントリソースが読み込めない
Ubuntu 21.04からだそうですが、ホームディレクトリのデフォルトのパーミッションが755から750になっています。
これにより、nginxが/home/mastodon以下を読めず、cssやjsなどが404になります。
sudo chmod 755 /home/mastodon
しちゃっていいんじゃないかな。
■ OpenSSL 3.0環境なのでruby 3.1より前のビルドに失敗する
現行のMastodonはruby 3.1まで大丈夫(とかいてある)ので、3.1.2に変えちゃいます。
cd ~/live
rbenv install 3.1.2
rbenv local 3.1.2
古いMastodonの場合はこれみて。
https://blog.noellabo.jp/entry/2022/05/17/232935
#mastodon
@shorty precompileに失敗してないかな?
https://fedibird.com/@noellabo/113274790979246322
assets:clobber で全部一度消して、他のプロセスができるだけ止まっていてメモリーに余裕がある状態で、assets:precompileをもう一度実行するって感じ。 [参照]
@shorty clobberは試してみる価値あるね。
あと、/home/mastodon/live/publicにnginxがアクセスできないパターン。
https://fedibird.com/@noellabo/108320227318401744
これ。
sudo chmod o+rx /home/mastodon [参照]
@shorty リリースノートには、
corepack enable
corepack prepare
せよってかいてあるけど、これ動く?(~/live で実行)
corepackが有効になってれば、yarnコマンドを実行したときに勝手にアップグレードされるよ。
@noellabo 「corepack: command not found」と出ますね・・・インストールに失敗している・・?
@shorty mastodonユーザーの環境にインストールされている1.22が、システムに入ってる4以上のyarnを隠してる感じですね……
rootとmastodonユーザーそれぞれで
which yarn
したときにパスが違ってたら、mastodonユーザーの方のyarnを削除すればいけるかも。
@noellabo path違ったんでmastodonの方のyarnを削除したら、「yarnがないよ」と言われますね・・・今度は入れ方がわからない・・
@noellabo Precompile中に「Mastodon and Webpacker requires Yarn ">=4 <5" and you are using 1.22.19
Exiting!」と出るのは、何か関係ありそうでしょうか? Yarnが4にアップグレードできなくて、1.22.19を使ってます