Sto aggiornando Discourse alla versione 2.1.6 partendo dalla 1.9.6, ma non riesco a completare l’installazione con bundle install. Sto utilizzando Docker (Ubuntu 16.04) come immagine di base per costruire Discourse. La versione di Ruby è la 2.3.0. Quando arrivo a bundle install, ottengo il seguente errore di compilazione. Aiuto urgente! Non sono sicuro di cosa altro mi stia sfuggendo…
==============================
Gem::Ext::BuildError: ERRORE: Creazione fallita dell'estensione nativa del gem.
directory corrente:
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mini_racer-0.2.0/ext/mini_racer_extension
/usr/local/rbenv/versions/2.3.0/bin/ruby -r ./siteconf20190111-14622-1sr4cny.rb
extconf.rb
verifica di main() in -lpthread... sì
creazione del Makefile
Per vedere perché questa estensione non è riuscita a compilarsi, controlla il file mkmf.log che si trova qui:
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0-static/mini_racer-0.2.0/mkmf.log
directory corrente:
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mini_racer-0.2.0/ext/mini_racer_extension
make "DESTDIR=" clean
directory corrente:
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mini_racer-0.2.0/ext/mini_racer_extension
make "DESTDIR="
compilazione di mini_racer_extension.cc
In file incluso da
/usr/local/rbenv/versions/2.3.0/include/ruby-2.3.0/ruby.h:33:0,
da mini_racer_extension.cc:2:
mini_racer_extension.cc: nella funzione 'VALUE protected_callback(VALUE)':
/usr/local/rbenv/versions/2.3.0/include/ruby-2.3.0/ruby/ruby.h:882:52: errore:
'__builtin_choose_expr' non è stato dichiarato in questo ambito
OBJ_WB_UNPROTECT((VALUE)(obj)), ((VALUE)(obj))))
^
/usr/local/rbenv/versions/2.3.0/include/ruby-2.3.0/ruby/ruby.h:1039:48: nota nella
definizione della macro 'RARRAY_CONST_PTR'
#define RARRAY_CONST_PTR(a) rb_array_const_ptr(a)
^
/usr/local/rbenv/versions/2.3.0/include/ruby-2.3.0/ruby/ruby.h:1059:50: nota nella
espansione della macro 'RB_OBJ_WB_UNPROTECT_FOR'
#define RARRAY_PTR(a) ((VALUE *)RARRAY_CONST_PTR(RB_OBJ_WB_UNPROTECT_FOR(ARRAY,
a)))
^
mini_racer_extension.cc:850:9: nota nella espansione della macro 'RARRAY_PTR'
RARRAY_PTR(data->ruby_args));
^
Makefile:206: ricetta per il target 'mini_racer_extension.o' fallita
make: *** [mini_racer_extension.o] Errore 1
make fallito, codice di uscita 2
I file del gem rimarranno installati in
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mini_racer-0.2.0 per
ispezione.
Risultati registrati in
/usr/local/rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0-static/mini_racer-0.2.0/gem_make.out
Si è verificato un errore durante l'installazione di mini_racer (0.2.0) e Bundler non può
continuare.
Assicurati che `gem install mini_racer -v '0.2.0' --source
'https://rubygems.org/'` abbia successo prima di eseguire bundle.
Nel Gemfile:
mini_racer
Guardando i gem che vengono installati, vedo questo (che credo sia ciò da cui dipende mini_racer):
Recupero di libv8 6.7.288.46.1 (x86_64-linux)
Installazione di libv8 6.7.288.46.1 (x86_64-linux)