耙子流产了!你已经激活了rake 10.0.2,但是你的Gemfile需要rake 0.9.2.2

时间:2012-11-21 09:22:18

标签: ruby-on-rails rake

我正在尝试“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)

8 个答案:

答案 0 :(得分:48)

试试这个bundle exec rake db:migrate

删除rake 10.0.2 gem

使用gem uninstall rake并移除10.0.2版本的rake gem

然后尝试rake db:migrate

为什么会出现错误:在你的宝石列表中有两个版本(10.0.2和0.9.2.2)的rake gem install,以便出现此错误。*

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

答案 1 :(得分:42)

对我来说,我刚刚跑了bundle update,一切正常。

答案 2 :(得分:6)

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

答案 3 :(得分:4)

Gemfile中,通过以下方式明确设置最新的rake版本:

gem 'rake', '~> 10.0.1'

然后运行

$ bundle update rake

然后尝试

答案 4 :(得分:3)

我刚遇到同样的问题。

  1. 我插入了我的gemfilen gem'rake','〜&gt; 10.0.1'[在你的情况下它应该是'10 .0.2']
  2. 我删除了我的gemfile锁
  3. 我再次运行rake db:migration并且工作正常。
  4. 我在这里得到了这个提示:Activated Ruby RAKE 10.0.1, require 10.0.0

    更新:在我的情况下,我没有rake重复。我只是拥有10.0.1版本的宝石。

答案 5 :(得分:2)

通过运行:

解决了同样的问题
bundle update

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

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

答案 6 :(得分:1)

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

bundle exec rake db:migrate

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

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

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

be rake db:migrate

答案 7 :(得分:0)

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