Ghost seems to be a "try and error" project for self-hosting

I have the same issue when trying to upgrade to 3.38.3 via ghost update:

✖ Downloading and updating Ghost to v3.38.3
A ProcessError occurred.

Message: Command failed: yarn install --no-emoji --no-progress
warning ghost@3.38.3: The engine "cli" appears to be invalid.
warning Resolution field "moment@2.24.0" is incompatible with requested version "moment@2.27.0"
warning Resolution field "moment@2.24.0" is incompatible with requested version "moment@2.27.0"
warning Resolution field "moment-timezone@0.5.23" is incompatible with requested version "moment-timezone@0.5.28"
warning Resolution field "moment@2.24.0" is incompatible with requested version "moment@2.27.0"
warning Resolution field "moment-timezone@0.5.23" is incompatible with requested version "moment-timezone@0.5.31"
warning " > bookshelf@0.15.2" has incorrect peer dependency "knex@>=0.13.0 <0.18.0".
warning " > @lodder/grunt-postcss@3.0.0" has unmet peer dependency "postcss@^8.0.9".

yarn install v1.22.10
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
info fsevents@2.1.3: The platform "linux" is incompatible with this module.
info "fsevents@2.1.3" is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
[5/5] Building fresh packages...


Debug Information:
    OS: Ubuntu, v16.04.3 LTS
    Node Version: v10.16.3
    Ghost Version: 3.28.0
    Ghost-CLI Version: 1.15.2
    Environment: production
    Command: 'ghost update'

Any ideas? I’ve tried clearing the yarn cache, upgrading npm and while my error seems similar to this report, that issue seems to be resolved now, so I’m out of ideas.