36 votes

ERREUR: 'rake / rdoctask' est obsolète et n'est plus pris en charge. Utilisez plutôt 'rdoc / task' (disponible dans RDoc 2.4.2+)

Semble que le dernier post pour ce problème a été fermé pour une raison ou une autre, donc je vais tenter ma chance...

Je suis en train de lancer un simple "rake db:migrate de la commande". Quand je le fais, j'obtiens l'erreur dans le titre. Oui, la solution "semble" évident, mais ce n'est pas parce que je n'ai pas mon Rakefile ne contient pas toutes les références à "rake/rdoctask'. Il semble être à venir à partir de la documentation.râteau mais quand j'ai essayer de modifier le fichier en tant que recommandé par l'erreur, j'obtiens une erreur différente. J'ai trouvé un couple de postes déclarant que ce soit un problème connu mais rien, j'ai trouvé indique comment résoudre ou contourner le problème.

Quelqu'un a une idée comment résoudre ce problème? Ci-dessous est la sortie de la commission de commande avec un --trace:

$ rake --trace db:migrate
rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/rdoctask.rb:1:in `<top (required)>'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks/documentation.rake:2:in `require'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks/documentation.rake:2:in `<top (required)>'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:15:in `load'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:15:in `block in <top (required)>'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:6:in `each'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:6:in `<top (required)>'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:213:in `require'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:213:in `initialize_tasks'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:139:in `load_tasks'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing'
    C:/developer/skknobara/Rakefile:7:in `<top (required)>'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/rake_module.rb:25:in `load'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/rake_module.rb:25:in `load_rakefile'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:583:in `raw_load_rakefile'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:89:in `block in load_rakefile'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:88:in `load_rakefile'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:72:in `block in run'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:70:in `run'
    C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/bin/rake:33:in `<top (required)>'
    C:/Programs/Ruby193/bin/rake:23:in `load'
    C:/Programs/Ruby193/bin/rake:23:in `<main>'

J'ai découvert que j'avais des rails 3.0.3 dans mon Gemfile donc je l'ai changé pour 3.2.9, mais maintenant quand je lance le rake db:migrate-je obtenir:

rake aborted!
Bundler could not find compatible versions for gem "rack":
  In Gemfile:
    rails (= 3.2.9) x86-mingw32 depends on
      rack (~> 1.4.0) x86-mingw32

    rack (1.2.5)

Je ne suis pas sûr de ce que l'erreur, mais "le joyau de la liste rack" montre que j'ai à la fois 1.4.1 et 1.4.0 installé. Mon Gemfile est assez simple:

gem 'rails', '3.2.9'
gem 'rack','< 1.4.1'
gem 'mysql2', '< 0.3'

Toutes les pensées?

62voto

GiridharBandi Points 662

J'ai eu un problème similaire en utilisant rails 2.3.5 donc, comme indiqué dans le message de trace, j'ai modifié le fichier Rakefile de manière à ce qu'il nécessite 'rdoc / task' au lieu de rake / rdoctask et que gd rdoc soit installé.

Si vous utilisez la version rake> 10.0.0. s'il vous plaît éditer votre Rakefile

de:

 require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
 

à:

 require 'rake'
require 'rake/testtask'
require 'rdoc/task'
require 'tasks/rails'
 

Si vous ne voulez pas éditer le fichier Rakefile, vous pouvez revenir à la version précédente de take comme ceci

 gem uninstall rake -v 10.0.3
gem install rake -v 0.8.7
 

22voto

danijel Points 546

J'ai rencontré un problème similaire lors de la migration de mon ancienne application vers rails 2.3.15. Je l'ai résolu en installant une ancienne version de rake et en désinstallant la version 10.0.3 actuelle:

 gem install rake --version 0.8.7
gem uninstall rake --version 10.0.3
 

7voto

James Testa Points 1037

Je l'ai mis au travail en mettant

bijou 'rake', '0.9.2.2'

dans mon Gemfile puis courir rake comme

 bundle exec rake db:migrate
 

6voto

bat Points 5380

J'ai dû résoudre ce problème sans casser des endroits sur lesquels de vieux râteau mais pas de rdoc sont installés. J'ai ajouté une clause begin ... rescue:

 begin
  require 'rake/rdoctask'
rescue
  require 'rdoc/task'
end
 

6voto

JstRoRR Points 531

Je suis tombé sur le même problème...j'ai fait ce que GiridharBandi mentionnés ci-dessus:

require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'

pour:

require 'rake'
require 'rake/testtask'
require 'rdoc/task'
require 'tasks/rails'

Râteau version 10.0.4 était là, dans le joyau de la liste, mais quand j'ai essayé de désinstaller, il a dit que le rake n'est pas installé. J'ai donc ignoré cela et procédé à l'installation de râteau 0.8.7. Une fois installé, j'ai installé rdoc

gem install rdoc

<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!

et puis tout a commencé à travailler très bien.

Pour les rails 3.0.6, avec le même type d'erreur:

ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.

J'ai installé râteau 0.9.2 et aussi rdoc. commenté le #require 'tâches/rails" et puis tout a commencé à travailler. Je pense que râteau problème est résolu dans les rails > 3.2.9.

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