Heute gab es ein Upgrade bei Mastodon, von 2.6.5 auf 2.7. Nachdem die Installation vor ein paar Wochen sehr gut verlief, dachte ich mir. Google mal nach Upgrade Mastodon und mach’ das eben. Das war vor ein paar Stunden :) Die ganze Umgebung war ja im Dezember 2018 eher #neuland für mich und so startete ich erstmal todesmutig bei dem Upgrading Link in der Mastodon Dokumentation https://docs.joinmastodon.org/administration/upgrading/ .

Hinweis: Das ist keine Upgrade Anleitung sondern eine Art Erlebnisbericht. Ich verwende Ubuntu 18.04 (kein Docker).

su - mastodon
cd /home/mastodon/live
git fetch --tags

Das war das durchaus ermutigende Ergebnis:

remote: Enumerating objects: 1559, done.
remote: Counting objects: 100% (1559/1559), done.
remote: Total 2407 (delta 1559), reused 1559 (delta 1559), pack-reused 848
Receiving objects: 100% (2407/2407), 2.09 MiB | 3.85 MiB/s, done.
Resolving deltas: 100% (1912/1912), completed with 502 local objects.
From https://github.com/tootsuite/mastodon
 + d65215f4b...2e81592ba dependabot/bundler/microformats-4.0.9          -> origin/dependabot/bundler/microformats-4.0.9  (forced update)
 + 1d9ad3e4f...fc602d9f3 dependabot/bundler/paperclip-6.1.0             -> origin/dependabot/bundler/paperclip-6.1.0  (forced update)
 + 78c3bd407...48b672bbd dependabot/bundler/rails-settings-cached-0.7.2 -> origin/dependabot/bundler/rails-settings-cached-0.7.2  (forced update)
 * [new branch]          feature-directory-notice                       -> origin/feature-directory-notice
 * [new branch]          feature-profile-hashtags                       -> origin/feature-profile-hashtags
 * [new branch]          feature-reblog-visibility-api                  -> origin/feature-reblog-visibility-api
   13dce1266..31e7940de  master                                         -> origin/master
 * [new tag]             v2.7.0                                         -> v2.7.0
 * [new tag]             v2.7.0rc1                                      -> v2.7.0rc1
 * [new tag]             v2.7.0rc2                                      -> v2.7.0rc2
 * [new tag]             v2.7.0rc3                                      -> v2.7.0rc3
git checkout v2.7.0

erzeugte diesen Fehler:

error: Your local changes to the following files would be overwritten by checkout:
config/settings.yml
Please commit your changes or stash them before you switch branches.
Aborting

Ich hatte scheinbar an der config/settings.yml Datei etwas geändert und deshalb brach der Checkout ab. In diesem Fall muss man nichts an der Datei ändern, ich konnte sie also separat auschecken:

git checkout config/settings.yml

und dann diesen Befehl wiederholen

 git checkout v2.7.0

Ergebnis:

Previous HEAD position was 887f9de6d Bump version to 2.6.5
HEAD is now at 31e7940de Fix multiple workers for the same scheduled status being queueable (#9875)

Da entstand dann die erste Verwirrung bei mir, denn laut Doku sollten hier Anweisungen stehen, was man weiter tun soll. Also schaute ich in den beschriebenen Pull Request (https://github.com/tootsuite/mastodon/pull/9875). Die Änderungen waren aber schon drin, so dass das wohl nur ein Hinweis war.

Die Doku sagte … jetzt die drei Mastodon Services restarten und alles ist gut. Unnötig zu sagen, dass das nicht klappte. Das war das Ergebnis auf https://fimidi.com :(

Nach ein wenig forschen entdeckte ich die Release Notes für die Mastodon 2.7.0 Version (https://github.com/tootsuite/mastodon/releases/tag/v2.7.0). Dort stand unter anderem sein, dass ich ab Mastodon 2.7.0 als Basis Ruby 2.6.0 benötige. Ich war mir nicht sicher welche Version ich habe, also tippte ich

ruby -v

Als Ergebnis kam leider dass hier

rbenv: version `2.6.0' is not installed (set by /home/mastodon/live/.ruby-version)

Ich lernte, dass es am 25.12.2018 ein neues Release von Ruby gab, nämlich besagtes Ruby 2.6.0. (https://www.ruby-lang.org/en/news/2018/12/25/ruby-2-6-0-released/).
Na gut, dann installiere ich das mal …

rbenv install 2.6.0
Downloading ruby-2.6.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0.tar.bz2
Installing ruby-2.6.0...
Installed ruby-2.6.0 to /home/mastodon/.rbenv/versions/2.6.0

Zurück zur Mastodon 2.7.0 Release Ankündigung.
Die sagt jetzt, ich soll diese drei Befehle ausführen:

gem update --system
#...
#RubyGems installed the following executables:
# /home/mastodon/.rbenv/versions/2.6.0/bin/gem
# /home/mastodon/.rbenv/versions/2.6.0/bin/bundle
#...

bundle install
#...
#alles gut, bis auf ein paar Warnungen (#unsicher werd)
#Using http_parser.rb 0.6.1 from https://github.com/tmm1/http_parser.rb (at 54b17ba@54b17ba)
#/home/mastodon/.rbenv/versions/2.6.0/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:183: warning: conflicting chdir during another chdir block #/home/mastodon/.rbenv/versions/2.6.0/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:191: warning: conflicting chdir during another chdir block
#Using posix-spawn 0.3.13 from https://github.com/rtomayko/posix-spawn (at 58465d2@58465d2)
#/home/mastodon/.rbenv/versions/2.6.0/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:183: warning: conflicting chdir during another chdir block #/home/mastodon/.rbenv/versions/2.6.0/lib/ruby/site_ruby/2.6.0/rubygems/ext/builder.rb:191: warning: conflicting chdir during another chdir block
#...

yarn install
#...
# lief durch aber Warnungen
yarn install v1.12.3
info fsevents@1.2.4: The platform "linux" is incompatible with this module.
warning " > react-redux-loading-bar@4.0.8" has incorrect peer dependency "react-redux@^3.0.0 || ^4.0.0 || ^5.0.0".
warning Your current version of Yarn is out of date. The latest version is "1.13.0", while you're on "1.12.3".

Ok, also erstmal Yarn aktualisiert (Installing Yarn on Ubuntu and Debian [The Official Way]). 
Danach wieder

 yarn install
yarn install v1.13.0
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile

ok, scheint zu funktionieren, jetzt noch:

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

und

RAILS_ENV=production bundle exec rails assets:precompile
...
webpacker is installed 🎉 🍰
Using /home/mastodon/live/config/webpacker.yml file for setting up webpack paths
Compiling…

und seitdem kompiliert er :) (etwa 16 Uhr)

Parallel dazu habe ich die Services neu gestartet

sudo systemctl restart mastodon-web.service
sudo systemctl restart mastodon-sidekiq.service
sudo systemctl restart mastodon-streaming.service

und zack …
fimidi.com läuft mit Mastodon 2.7.

fimidi.com mit mastodon 2.7.

Jetzt muss ich mal gucken, was es überhaupt an neuen Features gibt.

Leave a comment

Your email address will not be published. Required fields are marked *