Ecco cosa ho fatto. Ho effettuato l’accesso al server ed sono entrato nel container docker.
-
crea una cartella chiamata
gems -
crea una sottodirectory
2.7.5(versione ruby utilizzata da discourse di produzione sutests-passed) -
torna alla cartella
gems -
Esegui comandi in questo modo
RUBY_VERSION=2.7.5 gem install pkg-config -v 1.4.7 -i $RUBY_VERSION --no-document --ignore-dependencies --no-user-install gem install mkmfmf -v 0.4 -i $RUBY_VERSION --no-document --ignore-dependencies --no-user-install ...Nota: questi sono esattamente gli stessi comandi che discourse esegue (tenta di eseguire, ma fallisce) per installare le gem.
-
Ora comprime questa cartella.
-
Esci dal container docker e copia lo zip all’esterno del container docker usando il comando
docker cp. -
Connettiti al tuo server tramite filezilla o vscode e scarica lo zip.
-
estrailo nella cartella principale del tuo plugin. Quindi la tua cartella plugin avrà ora la directory gems.
-
Ora carica la cartella gems con il plugin su github.
Ora, quando esegui una ricostruzione su discourse con questo plugin, discourse utilizzerà le dipendenze che gli hai fornito e non tenterà di installarle. Questa è una soluzione temporanea e dovrà essere rifatta una volta che discourse aggiornerà la versione di ruby.
Ma ecco la grande domanda, perché gli stessi comandi che funzionano quando vengono eseguiti dal terminale falliscono quando discourse tenta di eseguirli. Vale davvero la pena indagare e spero che ci sia una soluzione semplice.