web-dev-qa-db-fra.com

gemme therubyracer sur windows

Je développe pacifiquement sur Windows sans ajouter de gemmes depuis quelques semaines maintenant et aujourd'hui j'ai décidé de faire une mise à jour du bundle, mais je ne peux pas passer à travers cette gemme appelée therubyracer. J'ai le devkit installé et il fonctionne selon la procédure de vérification de la documentation.

Ma question est: existe-t-il un moyen d'installer ce joyau sur les fenêtres?

Et ce joyau sera-t-il requis par Rails 3.1 et c'est pourquoi maintenant que je fais une mise à jour de bundle, il est 'glissé' dans le Rails 3.0 .8 comme un geste de démarrage rapide pour la future migration 3.1?

EDIT, y compris Gemfile et 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
50
Nik So

Non, je ne connais aucun moyen d'installer actuellement ce joyau sur Windows. Le problème est qu'il n'existe actuellement aucune version précompilée de la libv8 gem pour Windows, et la version source est uniquement compatible avec * nix. Cela ne doit pas nécessairement être ainsi, cela nécessite simplement que quelqu'un prenne le temps de faire fonctionner la compilation pour Windows. https://github.com/cowboyd/libv8

Cela dit, Windows devrait être livré avec un JScript, le runtime Microsoft JavaScript, que Rails (via execjs ) détectera et utilisera automatiquement, vous devriez donc pouvoir simplement supprimez votre dépendance au therubyracer.

En tant que mainteneur de ce joyau, cela me rendrait bien sûr triste, mais cela devrait vous mettre sur la bonne voie.

66
Charles Lowell

C'est essentiellement ce que Nik a fait, je crois:

Dans votre Gemfile, isolez la gemme TheRubyRacer dans l'environnement de production comme ceci:

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

Dans votre environnement de développement, au lieu d'un simple bundle install faire

bundle install --without production

ou, comme le suggère Nik, bundle install development. Lorsque vous déployez sur Heroku, il installe la gemme car il s'agit de l'environnement de production.

Gourous des rails: veuillez suggérer des modifications pour rendre cela moins risqué.

13
Dominic Sayers

La raison de tous ces problèmes est le therubyracer-0.11.0beta1-x86-mingw32.gem et le v8.dll.

J'ai respecté les fichiers DLL et gem nécessaires et les télécharger sur github.

téléchargez le package et suivez les instructions.

https://github.com/eakmotion/therubyracer_for_windows

10
Hiran

Il y a build pour windows . Il peut être téléchargé et installé manuellement par gem install therubyracer-0.11.0beta1-x86-mingw32.gem.

4
Alex

Pour répondre à une partie de votre question sur Rails 3.1, voici l'affaire ...

Rails 3.1 utilise actuellement une gemme qui nécessite un runtime javascript pour être installé sur la machine. Sur Mac, vous n'avez généralement pas à vous en préoccuper car il en a déjà un, mais Linux (et je pense que Windows aussi) vous devez en installer un. Ainsi, therubyracer, ou parfois node ou nodejs, sont parfois installés car ils fournissent cela.

Cependant, l'un des principaux Rails gars ont dit qu'ils prévoyaient de corriger cette dépendance avant la version finale Rails 3.1, donc j'espère que cela se produira et que la dépendance être parti.

2
jdc