web-dev-qa-db-ja.com

エラー: 'rake / rdoctask'は廃止され、サポートされなくなりました。代わりに「rdoc / task」(RDoc 2.4.2+で利用可能)を使用してください

この問題の最後の投稿は何らかの理由で閉じられたようですので、運試しをします...

単純な「rake db:migrate」コマンドを実行しようとしています。すると、タイトルにエラーが表示されます。はい、解決策は「明らか」に表示されますが、それは、Rakefileに 'rake/rdoctask'への参照が含まれていないからではありません。それはdocumentation.rakeから来ているようですが、エラーで推奨されているようにそのファイルを変更しようとすると、別のエラーが発生します。これを既知の問題として宣言している投稿をいくつか見つけましたが、これを修正または回避する方法を示すものは見つかりませんでした。

修正方法はありますか?以下は、-traceを使用したrakeコマンドの出力です。

$ 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>'

GemfileにRails 3.0.3があったため、3.2.9に変更しましたが、rake db:migrateを実行すると次のようになります。

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)

エラーの意味はわかりませんが、「宝石リストラック」には、1.4.1と1.4.0の両方がインストールされています。私のGemfileはとてもシンプルです:

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

何かご意見は?

36
DaveR

Rails 2.3.5を使用して同様の問題が発生したため、rake/rdoctaskの代わりに 'rdoc/task'を要求するようにRakefileを編集し、rdoc gemをインストールしました。

Rakeバージョン> 10.0.0を使用している場合。 Rakefileを編集してください

から:

require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/Rails'

に:

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

Rakefileを編集したくない場合は、このようなテイクの古いバージョンに切り替えることができます

gem uninstall rake -v 10.0.3
gem install rake -v 0.8.7
62
Giridhar Bandi

古いアプリをRails 2.3.15に移行するときに同様の問題に遭遇しました。rakeの古いバージョンをインストールし、現在の10.0.3バージョンをアンインストールすることで解決しました。

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

私はそれを置くことで動作するようになりました

gem 'rake'、 '0.9.2.2'

私のGemfileで、rakeを実行します

bundle exec rake db:migrate
7
James Testa

古いrakeがあるがrdocがインストールされていない場所で中断しないように、これを修正する必要がありました。 begin ... rescue句を追加しました。

begin
  require 'rake/rdoctask'
rescue
  require 'rdoc/task'
end
6
Benjamin Atkin

私は同じ問題に遭遇しました...私は何をしました ギリダーバンディ 上記の通り:

require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/Rails'

に:

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

Rakeバージョン10.0.4はgemリストにありましたが、アンインストールしようとすると、rakeがインストールされていないと表示されました。それで私はこれを無視し、rake 0.8.7のインストールに進みました。インストールしたら、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!

そして、すべてがうまく機能し始めました。

Rails 3.0.6、同じ種類のエラー:

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

Rake 0.9.2とrdocもインストールしました。 #require 'tasks/Rails'をコメントアウトすると、すべてが機能し始めました。レーキの問題はRails> 3.2.9。

6
JstRoRR

最近、同様の問題がありました。

rakeコマンドを実行できません:「エラー: 'rake/rdoctask'は廃止され、サポートされなくなりました」

Rails 3.2.9。にアップグレードして解決しました。

2
markussvensson

ああ、私はこれでほぼ1時間これを考えていました、そして最終的にここに私のケースがあります(誰かを助けるかもしれません:)):私は自分自身を複数のRails最も鋭いものを使用したい(今のところ4.0.1)

そう :

$ gem uninstall Rails

そして私はこれを手に入れました:

Select gem to uninstall:
 1. Rails-0.9.5
 2. Rails-4.0.0
 3. Rails-4.0.1
 4. All versions
>

だから私は最初の2つを選択しました、それはそれでした:)今ではすべてがOKです

1
Redrick

これはおそらくこれを行う正しい方法ではありませんが、Gemfile.lockファイルに移動し、レーキバージョンを10.0.3から0.8.7に戻しました。私は現在Rails 3.0.5を実行していますが、元に戻す前に3.0.19に簡単に更新していました。いくつかのgemを更新し、Rails gemが0.8.7以上の最新バージョンを探しているようにしたと思います。

Rails (3.0.5)
  actionmailer (= 3.0.5)
  actionpack (= 3.0.5)
  activerecord (= 3.0.5)
  activeresource (= 3.0.5)
  activesupport (= 3.0.5)
  bundler (~> 1.0)
  railties (= 3.0.5)
railties (3.0.5)
  actionpack (= 3.0.5)
  activesupport (= 3.0.5)
  rake (>= 0.8.7)
  thor (~> 0.14.4)
rake (0.8.7)

10.0.3もアンインストールしました。

gem uninstall rake --version 10.0.3

その後、すべてが正常に実行されます。

Rails 3.0.19をロールバックしなかった場合、rake 10.0.3を使用し続けていました。

これが誰かを助けることを願っています!

1
aferris

Bundlerベースのプロジェクトがあり、Ruby 1.9 .2。最終的に、Bundlerがrdoc gemを管理していないことがわかり、問題を解決するためにやらなければならないのは、Gemfileにrdocを含めることです(または、Gemfileがすでに使用するように設定されている場合はgemspec)実行bundle install

1.9.3または2.0.0でこれに遭遇することはなく、1.9.2のみです。

1
L2G

元のポスターのように、rake/rdoctaskの要件はありません。 my Railsはオプションではありません。答えは、Gemfileでレーキを0.9.2.2に保つことです。

1
mcr