Me encontré con un problema curioso que podría resaltar otra diferencia entre las actualizaciones en línea y las actualizaciones de línea de comandos.
Si realizo una actualización en línea con un plugin con la gema rmagick, tiene éxito.
Sin embargo, falla con una reconstrucción de CLI con:
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)
¿Las gemas solo se compilan durante una compilación completa? ¿O podría ser que haya habido un incremento en la versión de Ruby que solo se realiza en una reconstrucción completa? (¿lo que luego fuerza una rehacer de la gema?).
Hemos actualizado nuestra imagen, por lo que estamos compilando imagemagick por separado y solo incluimos el binario final de imagemagick, por lo que ya no incluimos las bibliotecas de tiempo de compilación para imagemagick en la imagen en un esfuerzo por reducir el tamaño de nuestras imágenes base.
Podrías simplemente agregar un script de instalación para instalar las bibliotecas de imagemagick, pero recomendaría eliminar la dependencia del plugin de la gema rmagick; no estoy seguro de dónde se llama esa gema, ya que parece que está extendiendo las llamadas de optimización de imágenes del Discourse principal, que simplemente llama directamente al binario de imagemagick.
Incluso si logro encontrar una solución alternativa, sería una verdadera lástima bloquear el uso del gem rmagick, ya que la alternativa implica manipular llamadas al sistema a ImageMagick, lo cual es un poco… tosco… y mucho menos amigable para el desarrollador en comparación con el uso de una API conveniente en el lenguaje.
El formulario correcto necesita cmd: etc. Pero lo siento, no se puede. No puedo confirmar si el error es el mismo, aunque. Usé tmux y no me permite desplazarse.