DOH! Ich schwöre, ich habe versucht, zumindest Folgendes zu tun:
asdf plugin update ruby
aber es scheint, dass ich das auch nicht getan habe.
![]()
Aber jetzt bin ich wirklich nah dran! Hier ist mein Skript, das Discourse abruft, Ruby, imagemagick und nodejs aktualisiert und die Datenbank migriert.
DISCOURSE_SRC=/home/pfaffman/src/discourse-repos/discourse
DISCOURSE_DOCKER_SRC=/home/pfaffman/src/discourse-repos/discourse_docker
cd $DISCOURSE_SRC
git -C $DISCOURSE_DOCKER_SRC pull https://github.com/discourse/discourse_docker
DISCOURSE_BASE=$(grep -e ^image= $DISCOURSE_DOCKER_SRC/launcher|cut -d'\"' -f2)
cd -
docker pull $DISCOURSE_BASE
asdf plugin add nodejs #https://github.com/asdf-vm/asdf-nodejs.git
asdf plugin add ruby #https://github.com/asdf-vm/asdf-ruby.git
asdf plugin add imagemagick
asdf plugin update --all
RUBY_VERSION=$(grep -e ^RUBY_VERSION $DISCOURSE_DOCKER_SRC/image/base/install-ruby|cut -d'\"' -f2)
asdf install ruby $RUBY_VERSION
asdf local ruby $RUBY_VERSION
IMAGE_MAGICK_VERSION=$(grep -e ^IMAGE_MAGICK_VERSION ~//src/discourse-repos/discourse_docker/image/base/install-imagemagick|cut -d'\"' -f2)
asdf install imagemagick $IMAGE_MAGICK_VERSION
asdf local imagemagick $IMAGE_MAGICK_VERSION
# 2023-04-24 debian und pop!os haben unterschiedliche nodejs-Versionen
NODE_VERSION=$(docker run discourse/base:2.0.20230420-0104 bash -c 'node --version'|cut -d'v' -f2)
asdf install nodejs $NODE_VERSION
asdf local nodejs $NODE_VERSION
cd $DISCOURSE_SRC
git checkout main
git pull
bundle install
./bin/rake db:migrate
RAILS_ENV=test ./bin/rake db:migrate
Ich denke, es ist in Ordnung, Redis und Postgres von Hand aktuell zu halten, obwohl ich beim nächsten Mal, wenn ich ein Betriebssystem installiere und feststelle, dass mein Betriebssystem und Discourse voneinander abgewichen sind, wahrscheinlich meine Meinung ändern werde!
Ich bin mir nicht sicher, was oxipng überhaupt ist, aber ich glaube nicht, dass eine falsche Version wahrscheinlich Probleme für einen Plugin-Entwickler verursachen wird. Dasselbe gilt für jemalloc.
Und ehrlich gesagt, ich bin mir nicht sicher, wie viele Plugin-Entwickler wahrscheinlich von imagemagick-Versionen betroffen sein werden. Ich denke, nur Ruby und nodejs sind wahrscheinlich Showstopper.
Es könnte sicherer sein, auch Ruby- und imagemagick-Versionen aus dem Image zu beziehen, da ich vermute, dass dieses Skript verschwinden wird, wenn Debian die erforderliche Ruby-Version hat, aber ich hatte diese Logik bereits geschrieben, als ich erfuhr, dass ich die Node-Version aus dem Basis-Image ziehen musste.
Und in der Zeit zwischen dem Zeitpunkt, an dem @falco mich mit asdf plugin update --all gerettet hat, und als ich dieses Skript geschrieben habe, wurde die Ruby-Version auf 3.2.2 aktualisiert, und mein Code hat es erfasst und asdf hat es installiert! Ich habe den obigen Code zu meinem Update-Skript hinzugefügt, das Folgendes enthält: