耙子流产了! 你已经激活了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
然后试试
我刚遇到同样的问题。
- 我插入了我的gemfilen gem’rake’,’〜> 10.0.1′[在你的情况下它应该是’10 .0.2′]
- 我删除了我的gemfile锁
- 我再次运行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中的版本更改为控制台中显示的版本号,它将完成