耙子流产了! 你已经激活了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 `' /Users/Andy/Desktop/AcademyAir/config/boot.rb:6:in `' /Users/Andy/Desktop/AcademyAir/config/application.rb:1:in `' /Users/Andy/Desktop/AcademyAir/Rakefile:5:in `' (See full trace by running task with --trace) 

试试这个bundle exec rake db:migrate

删除rake 10.0.2 gem

通过使用gem uninstall rake并删除10.0.2版本的rake gem

然后尝试rake db:migrate

为什么会出现错误 :在你的gem列表中有两个版本(10.0.2和0.9.2.2)的rake gem install,这样就会出现这个错误。*

另一个解决方案是你可以做bundle update

对我来说,我只是运行bundle update ,一切正常。

我能够通过打开Gemfile并将gem’rake gem 'rake', '~> 0.9.2.2'更改为gem 'rake', '~> 0.9.2.2' gem 'rake', '~> 10.0.1'来解决这个问题gem 'rake', '~> 10.0.1'

在您的Gemfile ,通过以下方式显式设置最新的rake版本:

 gem 'rake', '~> 10.0.1' 

然后跑

 $ bundle update rake 

然后试试

我刚遇到同样的问题。

  1. 我插入了我的gemfilen gem’rake’,’〜> 10.0.1′[在你的情况下它应该是’10 .0.2′]
  2. 我删除了我的gemfile锁
  3. 我再次运行rake db:migration并且工作正常。

我在这里得到了这个提示: 激活Ruby RAKE 10.0.1,需要10.0.0

更新:在我的情况下,我没有rake重复。 我只是在我的gem10.0.1版本。

通过运行解决了同样的问题:

 bundle update 

这会将您的rake gem更新为最新版本,并允许您运行迁移。

如果您使用的是gemset:请确保在更新rake后再运行bundle install以更新本地gemset。

这是因为您正在使用系统中的rake 。 (默认情况下为最新版本)解决方案是使用以下命令:

 bundle exec rake db:migrate 

此外,您还可以创建别名。 因为这个命令太大而且难以编写。

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

然后你可以使用follow short命令:

 be rake db:migrate 

将位于gemfile和gemlock中的版本更改为控制台中显示的版本号,它将完成