0 votes

Problèmes lors de l'exécution de Rails sur Ubuntu

Tout d'abord, un peu de contexte. J'essaie d'exécuter Moteur communautaire sur une nouvelle installation d'Ubuntu. CE est un plugin de réseau social open src fonctionnant sur Rails. J'ai été en mesure de mettre CE en place et de le faire fonctionner sur ma boîte Windows sans problème. J'ai décidé d'utiliser Ubuntu 8.10 comme environnement de développement maintenant, et je suis bloqué sur ce problème. J'ai fait des recherches à ce sujet au cours des deux dernières nuits et je suis toujours bloqué.

Ce qui se passe, c'est que lorsque j'arrive à cette étape de l'instruction ( trouvé ici ):

  Generate the community engine migrations:

  $ script/generate plugin_migration

Je reçois l'erreur suivante :

myuser@compy:~/Projects/MyProject$ script/generate plugin_migration
/home/myuser/Projects/MyProject/config/../vendor/plugins/engines/boot.rb:4: This version of the engines plugin requires Rails 2.1.1 or later! (RuntimeError)
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /home/myuser/Projects/MyProject/config/environment.rb:12
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /home/myuser/Projects/MyProject/vendor/rails/railties/lib/commands/generate.rb:1
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from script/generate:3

Voici ma version de ruby :

myuser@compy:~/Projects/MyProject$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]

et mes gemmes installées :

myuser@compy:~/Projects/MyProject$ gem list

*** LOCAL GEMS ***

actionmailer (2.2.0, 2.1.2, 2.1.1)
actionpack (2.2.0, 2.1.2, 2.1.1)
activerecord (2.2.0, 2.1.2, 2.1.1)
activeresource (2.2.0, 2.1.2, 2.1.1)
activesupport (2.2.0, 2.1.2, 2.1.1)
aws-s3 (0.5.1)
builder (2.1.2)
capistrano (2.5.0)
cgi_multipart_eof_fix (2.5.0)
daemons (1.0.10)
fastthread (1.0.1)
gem_plugin (0.2.3)
haml (2.0.4)
highline (1.4.0)
hpricot (0.6.164)
htmlentities (4.0.0)
mime-types (1.15)
mongrel (1.1.5)
net-scp (1.0.1)
net-sftp (2.0.1)
net-ssh (2.0.4)
net-ssh-gateway (1.0.0)
rails (2.2.0, 2.1.2, 2.1.1)  <--- clearly I have rails 2.1.1 or greater
rake (0.8.3)
RedCloth (4.1.0)
rmagick (2.7.1)
sqlite3-ruby (1.2.4)
xml-simple (1.0.11)

J'ai eu cette erreur alors que je n'avais que rails 2.1.1 également.

Oui, j'ai beaucoup plus de gemmes que ce dont j'ai besoin pour CE, mais en essayant de retrouver ce problème, voilà ce que j'ai trouvé. J'ai le sentiment que, quel que soit le problème, il est stupide et que j'aurais dû l'attraper. Mais à ce stade, j'ai été très frustré par ce qui était un processus simple sur une boîte XP.

J'ai posé cette question dans le groupe Google de Community Engine, mais j'ai l'impression que cela est davantage lié à la configuration de Ruby et Rails sur ma machine qu'à CE lui-même.

Une aide serait appréciée.

5voto

Orion Edwards Points 54939

Le "problème" ne vient pas de CommunityEngine lui-même, mais du plugin "engines" sous-jacent ( http://github.com/lazyatom/engines ).

en regardant le code source de boot.rb dans le plugin moteurs nous pouvons voir qu'il vérifie simplement les champs standards de Rails::VERSION, donc le problème n'est pas là non plus.

Maintenant, lorsque vous créez une application rails, elle est liée à la version spécifique que vous avez utilisée. lorsque vous avez créé l'application Rails . Le fait d'avoir les gemmes rails 2.1.1/2 sur votre système ne signifie pas qu'elles seront automatiquement utilisées.

Pour vérifier l'application rails elle-même, regardez le fichier config/environment.rb dans votre application Rails. Vous verrez quelque chose comme ceci :

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION

S'il est inférieur à 2.1.1, vous devez mettre à jour votre application Rails.
C'est assez simple :

  1. Changez le RAILS_GEM_VERSION chaîne dans config/environment.rb à 2.1.1 ou plus
  2. exécuter rake rails:upgrade

J'espère que cela résout votre problème :-)

2voto

levi rosol Points 1901

Ce problème est finalement dû au fait que je n'ai pas utilisé sudo pour installer rails. J'ai fini par supprimer complètement ruby et le réinstaller. J'ai également fait plus attention à la sortie des différentes gemmes que je devais installer pour m'assurer qu'elles se téléchargeaient et fonctionnaient. J'ai été surpris de voir que beaucoup d'entre elles ne se téléchargeaient pas et devaient être exécutées une deuxième, voire une troisième fois avant de s'installer.

En ce qui concerne la suggestion d'Orion, j'avais vérifié la version RAILS_GEM_VERSION et elle était égale ou supérieure à 2.1.1. C'est ce qui causait le plus de confusion dans ce problème car il était dit quelle version était nécessaire, et ensuite gem -v me montrait la bonne version.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X