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?
# 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
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.
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é.
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.
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
.
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.