gem di terubyracer su windows

Sto sviluppando pacificamente su Windows senza aggiungere gemme per qualche settimana e oggi ho deciso di fare un aggiornamento del pacchetto, ma non riesco a superare questa gem chiamata therubyracer. Ho installato il devkit e funziona secondo la procedura di verifica della documentazione.

La mia domanda è: c’è un modo per installare questa gem su Windows?

Ed è questa gem che sarà richiesta dalle rotaie 3.1 ed è per questo che ora che faccio un aggiornamento del bundle viene “slittato” nelle rotaie 3.0.8 come gesto di inizio precoce per la migrazione futura 3.1?

EDIT incluso Gemfile e Gemfile.lock

# Gemfile # source 'http://rubygems.org' source :rubygems gem 'rails' gem 'rake', '0.8.7' gem 'youtube_it' gem 'panda' gem "nifty-generators" # gem "mongoid", "2.0.0.rc.7" gem "mongoid" gem "mongoid-eager-loading" # gem 'mongoid_search' gem "bson_ext", ">1.1.5" gem 'devise' gem 'cancan' gem 'hirb' # gem 'heroku' gem 'rest-client' gem 'less' # needs the more plugin # gem 'hash_extension' gem 'aws-s3', :require => 'aws/s3' # s3.rb gem 'jquery-rails', ">= 0.2.7" # rails g jquery:install # gem 'mongrel', ">= 1.2.0.pre2" gem 'delayed_job' gem 'delayed_job_mongoid' gem 'kaminari' # Gemfile.lock GEM remote: http://rubygems.org/ specs: abstract (1.0.0) actionmailer (3.0.8) actionpack (= 3.0.8) mail (~> 2.2.19) actionpack (3.0.8) activemodel (= 3.0.8) activesupport (= 3.0.8) builder (~> 2.1.2) erubis (~> 2.6.6) i18n (~> 0.5.0) rack (~> 1.2.1) rack-mount (~> 0.6.14) rack-test (~> 0.5.7) tzinfo (~> 0.3.23) activemodel (3.0.8) activesupport (= 3.0.8) builder (~> 2.1.2) i18n (~> 0.5.0) activerecord (3.0.8) activemodel (= 3.0.8) activesupport (= 3.0.8) arel (~> 2.0.10) tzinfo (~> 0.3.23) activeresource (3.0.8) activemodel (= 3.0.8) activesupport (= 3.0.8) activesupport (3.0.8) arel (2.0.10) aws-s3 (0.6.2) builder mime-types xml-simple bcrypt-ruby (2.1.4-x86-mingw32) bson (1.3.1) bson_ext (1.3.1) builder (2.1.2) cancan (1.6.5) daemons (1.1.3) delayed_job (2.1.4) activesupport (~> 3.0) daemons delayed_job_mongoid (1.0.2) delayed_job (~> 2.1.1) mongoid (~> 2.0.0.rc) devise (1.3.4) bcrypt-ruby (~> 2.1.2) orm_adapter (~> 0.0.3) warden (~> 1.0.3) erubis (2.6.6) abstract (>= 1.0.0) hirb (0.4.5) i18n (0.5.0) jquery-rails (1.0.10) railties (~> 3.0) thor (~> 0.14) json (1.5.2) kaminari (0.12.4) rails (>= 3.0.0) less (1.2.21) mutter (>= 0.4.2) treetop (>= 1.4.2) mail (2.2.19) activesupport (>= 2.3.6) i18n (>= 0.4.0) mime-types (~> 1.16) treetop (~> 1.4.8) mime-types (1.16) mongo (1.3.1) bson (>= 1.3.1) mongoid (2.0.2) activemodel (~> 3.0) mongo (~> 1.3) tzinfo (~> 0.3.22) mongoid-eager-loading (0.3.1) mutter (0.5.3) nifty-generators (0.4.6) oauth (0.4.4) orm_adapter (0.0.5) panda (1.4.2) json rest-client ruby-hmac (>= 0.3.2) polyglot (0.3.1) rack (1.2.3) rack-mount (0.6.14) rack (>= 1.0.0) rack-test (0.5.7) rack (>= 1.0) rails (3.0.8) actionmailer (= 3.0.8) actionpack (= 3.0.8) activerecord (= 3.0.8) activeresource (= 3.0.8) activesupport (= 3.0.8) bundler (~> 1.0) railties (= 3.0.8) railties (3.0.8) actionpack (= 3.0.8) activesupport (= 3.0.8) rake (>= 0.8.7) thor (~> 0.14.4) rake (0.8.7) rest-client (1.6.1) mime-types (>= 1.16) ruby-hmac (0.4.0) thor (0.14.6) treetop (1.4.9) polyglot (>= 0.3.1) tzinfo (0.3.28) warden (1.0.4) rack (>= 1.0) xml-simple (1.0.16) youtube_it (1.4.2) builder oauth (>= 0.4.4) PLATFORMS x86-mingw32 DEPENDENCIES aws-s3 bson_ext (> 1.1.5) cancan delayed_job delayed_job_mongoid devise hirb jquery-rails (>= 0.2.7) kaminari less mongoid mongoid-eager-loading nifty-generators panda rails rake (= 0.8.7) rest-client youtube_it 

No, non c’è modo che io sappia per installare questo gioiello su Windows. Il problema è che al momento non esiste una versione precompilata di libv8 gem per Windows, e la versione sorgente è compatibile solo con * nix. Non deve essere necessariamente così, richiede semplicemente che qualcuno si impegni a fare in modo che la compilazione funzioni per Windows. https://github.com/fractaloop/libv8

Detto questo, Windows dovrebbe venire con un JScript, il runtime Microsoft JavaScript, che rails (tramite execjs ) rileverà e utilizzerà automaticamente, quindi dovresti essere in grado di rimuovere la tua dipendenza da terubyracer.

Come manutentore di quella gem, questo mi renderebbe triste, ma dovrebbe farti strada.

Questo è essenzialmente ciò che Nik ha fatto, credo:

Nel tuo Gemfile isolare la gem TheRubyRacer nell’ambiente di produzione come questo:

 group :production do gem 'therubyracer-heroku', :platform => :ruby end 

Nel tuo ambiente di sviluppo, invece di un semplice bundle install

 bundle install --without production 

oppure, come suggerisce Nik, bundle install development . Quando si distribuisce su Heroku verrà installato il gem perché è l’ambiente di produzione.

Guru delle rotaie: ti preghiamo di suggerire modifiche per renderlo meno schifoso.

Il motivo di tutti questi problemi è il therubyracer-0.11.0beta1-x86-mingw32.gem e v8.dll.

Ho rispettato i file dll e gem necessari e li ho caricati su github.

scarica il pacchetto e segui le istruzioni.

https://github.com/eakmotion/therubyracer_for_windows

C’è una build per Windows . Può essere scaricato e installato manualmente da gem install therubyracer-0.11.0beta1-x86-mingw32.gem .

Per rispondere a una parte della tua domanda su Rails 3.1, ecco l’offerta …

Rails 3.1 utilizza attualmente una gem che richiede l’installazione di un runtime javascript sulla macchina. Su Mac di solito non ti devi preoccupare di questo poiché ne ha già uno, ma Linux (e penso che anche Windows) devi installarne uno. Quindi, therubyracer, o talvolta node o nodejs, a volte sono installati poiché forniscono questo.

Tuttavia, uno dei principali ragazzi di Rails ha detto che ha in programma di aggiustare tale dipendenza prima della release finale di Rails 3.1, quindi spero che ciò accada e che la dipendenza non ci sarà più.