web-dev-qa-db-ja.com

レーキは中止されました!すでにrake 10.0.2をアクティベートしていますが、Gemfileにはrake 0.9.2.2が必要です

「rake db:migrate」を実行しようとしていますが、このエラーが発生しています。

Andy:AcademyAir Andy$ rake db:migrate
/Users/Andy/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/runtime.rb:197: warning: Insecure world writable dir /usr in PATH, mode 040777
rake aborted!
You have already activated rake 10.0.2, but your Gemfile requires rake 0.9.2.2. Using bundle exec may solve this.
/Users/Andy/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/runtime.rb:31:in `block in setup'
/Users/Andy/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/runtime.rb:17:in `setup'
/Users/Andy/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler.rb:116:in `setup'
/Users/Andy/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/setup.rb:7:in `<top (required)>'
/Users/Andy/Desktop/AcademyAir/config/boot.rb:6:in `<top (required)>'
/Users/Andy/Desktop/AcademyAir/config/application.rb:1:in `<top (required)>'
/Users/Andy/Desktop/AcademyAir/Rakefile:5:in `<top (required)>'
(See full trace by running task with --trace)
26
Andy

これを試してくださいbundle exec rake db:migrate

rake 10.0.2 gemを削除

gem uninstall rakeを使用し、10.0.2バージョンのrake gemを削除する

そして、rake db:migrateを試してください

エラーが発生する理由:gemリストに2つのバージョン(10.0.2および0.9.2.2)のrake gemインストールが含まれているため、このエラーが発生します。*

別の解決策は、bundle updateを実行できることです

48
Dipak Panchal

私にとっては、ただbundle updateそして、すべてが再び正しく機能します。

42
csoria

これを解決するには、Gemfileを開いてgem 'rake', '~> 0.9.2.2'からgem 'rake', '~> 10.0.1'

6
user1817421

Gemfileで、次の方法で最新のレーキバージョンを明示的に設定します。

gem 'rake', '~> 10.0.1'

そして、実行します

$ bundle update rake

それから試して

4

私はちょうど同じ問題に遭遇しました。

  1. Gemfilen gem 'rake'、 '〜> 10.0.1' [あなたの場合は'10 .0.2 ']に挿入しました
  2. Gemfileロックを削除しました
  3. Rake db:migrationを再度実行し、動作しました。

ここにこのヒントがあります: Activated Ruby RAKE 10.0.1、require 10.0.

更新:私の場合、レーキは複製されていませんでした。私のgemsには10.0.1バージョンがあります。

3

以下を実行して同じ問題を解決しました:

bundle update

これにより、rake gemが最新バージョンに更新され、移行を実行できるようになります。

Gemsetを使用している場合:rakeを更新した後にbundle installを実行して、ローカルgemsetも更新してください。

2
yellowaj

システムからrakeを使用しているために発生します。 (デフォルトでは最新バージョン)解決策は次のコマンドを使用することです:

bundle exec rake db:migrate

また、エイリアスを作成することもできます。このコマンドは大きすぎて記述が難しいためです。

echo "alias be='bundle exec'" >> ~/.bash_profile
source ~/.bash_profile

その後、次の短いコマンドを使用できます。

be rake db:migrate
1
mrded

gemfileとgemlockの両方にあるバージョンを、コンソールに表示されているバージョン番号に変更します。

0
Richard Chen