Auf ein merkwürdiges Problem gestoßen, das möglicherweise einen weiteren Unterschied zwischen Online-Updates und Befehlszeilen-Updates hervorhebt.
Wenn ich ein Online-Update mit einem Plugin mit dem rmagick gem durchführe, ist es erfolgreich.
Es schlägt jedoch mit einem CLI-Rebuild fehl mit:
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
current directory: /var/www/discourse/plugins/discourse-topic-previews-sidecar/gems/3.3.6/gems/rmagick-6.0.1/ext/RMagick
/usr/local/bin/ruby extconf.rb
checking for brew... no
checking for pacman... no
checking for Ruby version >= 3.0.0... yes
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include=${opt-dir}/include
--without-opt-include
--with-opt-lib=${opt-dir}/lib
--without-opt-lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/bin/$(RUBY_BASE_NAME)
--with-pkg-config
--without-pkg-config
--with-override-variables
--without-override-variables
/var/www/discourse/plugins/discourse-topic-previews-sidecar/gems/3.3.6/gems/pkg-config-1.5.6/lib/pkg-config.rb:504:in `parse_pc': .pc doesn't exist: <MagickCore> (PackageConfig::NotFoundError)
Werden Gems nur während eines vollständigen Builds erstellt? Oder könnte es sein, dass eine Ruby-Versionserhöhung stattgefunden hat, die nur bei einem vollständigen Rebuild durchgeführt wird? (was dann eine Neuerstellung des Gems erzwingt?)
Wir haben unser Image aktualisiert, daher kompilieren wir ImageMagick separat und binden nur die endgültige ImageMagick-Binärdatei ein. Wir binden daher keine Compile-Zeit-Bibliotheken für ImageMagick mehr in das Image ein, um die Größe unserer Basis-Images zu reduzieren.
Sie könnten einfach ein Installationsskript hinzufügen, um die ImageMagick-Bibliotheken zu installieren, aber ich würde empfehlen, die Abhängigkeit des Plugins von der rmagick-Gem zu entfernen – ich bin mir nicht sicher, wo diese Gem aufgerufen wird, da sie die Kernaufrufe zur Bildoptimierung von Discourse zu erweitern scheint, die direkt die ImageMagick-Binärdatei aufrufen.
Selbst wenn ich eine Umgehung finden könnte, wäre es wirklich schade, die Verwendung des rmagick-Gems zu blockieren, da die Alternative darin besteht, mit Systemaufrufen an ImageMagick herumzuhantieren, was etwas … sperrig … und viel weniger entwicklerfreundlich ist, im Gegensatz zur Verwendung einer praktischen API in der Sprache.
Das richtige Formular benötigt cmd: usw. Aber leider geht das nicht. Ich kann nicht bestätigen, ob der Fehler derselbe ist. Ich habe tmux benutzt und es erlaubt mir kein Scrollen.