2012-03-14 2 views
0

Je maintiens un ancien site RoR que nous sommes en train de réécrire dans Django. Le site a été écrit par quelqu'un d'autre quand Rails en était à ses balbutiements, et personne ne l'a tenu à jour jusqu'à ce que j'y arrive. Il y a une nuit ou deux, le serveur est tombé en panne, je suppose en raison d'une mise à jour de MySQL. Dans le processus d'essayer de le réparer, nous l'avons cassé, et maintenant le mongrel ne commencera pas. Je vois ceci dans le journal de mongrel:Erreur de version de RubyGem: rails (1.2.3 pas> = 3.0)

/home/USER/rails/SITE/config/boot.rb:26:Warning: Gem::SourcUSERdex#search support for String patterns is deprecated, use #find_name 
/usr/local/lib/site_ruby/1.8/rubygems.rb:812:in `report_activate_error': RubyGem version error: rails(1.2.3 not >= 3.0) (Gem::LoadError) 
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:223:in `activate' 
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:258:in `activate' 
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:257:in `each' 
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:257:in `activate' 
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:33:in `require' 
    from /home/USER/rails/SITE/config/environment.rb:24 
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require' 
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `require' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in `rails' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in `cloaker_' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:149:in `call' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:149:in `listener' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in `cloaker_' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:50:in `call' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:50:in `initialize' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `new' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `run' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/command.rb:212:in `run' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281 
    from /usr/local/bin/mongrel_rails:19:in `load' 
    from /usr/local/bin/mongrel_rails:19 

J'ai cherché autour et ai essayé de diagnostiquer l'erreur. On dirait que mongrel veut que nous ayons des rails 3+ ce qui n'est pas possible parce que nous allons remplacer le site en quelques semaines et que nous ne voulons pas le mettre à jour (il faut juste travailler pour le moment). Comment puis-je forcer mongrel à fonctionner avec la version actuelle des rails?

En config/environment.rb, nous avons RAILS_GEM_VERSION = '1.2.3' unless defined? RAILS_GEM_VERSION que je pensais forcerait Rails 1.2.3. De plus, voici la sortie de gem list:

*** LOCAL GEMS *** 

abstract (1.0.0) 
actionmailer (3.2.2, 3.0.3, 1.3.3) 
actionpack (3.2.2, 3.0.3, 1.13.6, 1.13.3) 
actionwebservice (1.2.6, 1.2.3) 
activemodel (3.2.2, 3.0.3) 
activerecord (3.2.2, 3.0.3, 1.15.6, 1.15.3) 
activeresource (3.2.2, 3.0.3) 
activesupport (3.2.2, 3.0.3, 1.4.4, 1.4.2) 
acts_as_ferret (0.5.3, 0.4.3) 
arel (3.0.2, 2.0.7) 
builder (3.0.0, 2.1.2) 
bundler (1.1.0, 1.0.9) 
cgi_multipart_eof_fix (2.5.0) 
daemons (1.1.8, 1.1.0) 
erubis (2.7.0, 2.6.6) 
fastthread (1.0.7) 
ferret (0.11.6) 
gem_plugin (0.2.3) 
hike (1.2.1) 
i18n (0.6.0, 0.5.0) 
jk-ferret (0.11.8.3, 0.11.8.2) 
journey (1.0.3) 
json (1.6.5) 
mail (2.4.3, 2.2.15) 
mime-types (1.17.2, 1.16) 
mongrel (1.1.5) 
multi_json (1.1.0) 
polyglot (0.3.3, 0.3.1) 
rack (1.4.1, 1.2.1) 
rack-cache (1.2) 
rack-mount (0.8.3, 0.6.13) 
rack-ssl (1.3.2) 
rack-test (0.6.1, 0.5.7) 
rails (1.2.3) 
railties (3.2.2, 3.0.3) 
rake (0.9.2.2, 0.8.7) 
rdoc (3.12) 
sprockets (2.1.2) 
thor (0.14.6) 
tilt (1.3.3) 
treetop (1.4.10, 1.4.9) 
tzinfo (0.3.32, 0.3.24) 

Merci pour toute aide!


OK, je l'ai compris. C'était gem (s) incompatible. Heureusement, nous avons un serveur de test et un serveur de production. Nous avons seulement joué avec le serveur de test la nuit dernière (le métis sur le serveur de production fonctionnait), donc j'ai fait gem list sur les deux serveurs, et il s'est avéré que le serveur de test avait une liste assez différente. Je viens d'installer et de désinstaller des gems sur le serveur de test jusqu'à ce que gem list produise des listes identiques sur les deux serveurs.

Répondre

1

Mongrel nécessite la dernière version de rails disponible, mais vos applications requièrent des rails 1.2.3, il y a donc un conflit.

Le moyen le plus simple d'éviter les conflits de gemmes est d'utiliser différents gemsets (avec rvm ou rbenv). Ou retirez les rails 3 gemme si elle n'est pas utilisée ...

+0

"Ou retirez les rails 3 gemme si elle n'est pas utilisée ..." - Comment faire? 'gem list' n'indique pas que Rails 3 est installé. – Geoff

+1

Vous avez quelques rails 3 dépendances de gem installé: actionmailer, actionpack, activemodel, activerecord, activéesource, activesupport, railties + certaines versions rack. Supprimer la version 3+ de ces gemmes et ce sera OK – sailor

+0

Merci! Vous avez réussi. J'ai enlevé les gemmes incompatibles, et maintenant le mongrel démarre. – Geoff

Questions connexes