在台式电脑xp上按上回的 Windows下配置Rails3开发环境 安装Rails3,出现了点状况,不能正常安装,所以一个个包来安装,安装终于完成了,ruby -v gem-v rails -v都是想要的版本,一切看起来都很正常,rails new abc 也正常,当新建model后,进行数据迁移,竟然执行抛异常了,执行 rake db:migrate 出现了一个错误:
...rubygems.rb:340:in `bin_path': can't find executable rake for rake-0.8.7 (Gem::Exception)
from C:/..../bin/rake:19:in `<main>'
纳闷了半天,google了一些材料,中文的资料暂时没有找到解决的办法;再看看E文,发现了一个有效的办法:
原文:
C:\installs\trunk3_installed>cd bin
C:\installs\trunk3_installed\bin>rake -T
C:/installs/trunk3_installed/lib/ruby/1.9.1/rubygems.rb:340:in `bin_path': can't find executable rake for rake-0.8.7 (Gem::Exception)
from C:/installs/trunk3_installed/bin/rake:19:in `<main>'
C:\installs\trunk3_installed\bin>cd ..
C:\installs\trunk3_installed>cat ./lib/ruby/gems/1.9.1/specifications/rake.gemspec
Gem::Specification.new do |s|
s.name = "rake"
s.version = "0.8.7"
s.summary = "This rake is bundled with Ruby"
end
C:\installs\trunk3_installed>rm ./lib/ruby/gems/1.9.1/specifications/rake.gemspec
C:\installs\trunk3_installed>cd bin
C:\installs\trunk3_installed\bin>rake -T
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
C:/installs/trunk3_installed/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2377:in `raw_load_rakefile'
(See full trace by running task with --trace)
其实简单来说就是到ruby1.9.2安装目录 /lib/ruby/gems/1.9.1/specifications/下,找到rake.gemspec这个文件,并删除掉,就恢复正常了,想必是老版本残留下的东西影响了rake的运作吧。
这下 rake -t 能正常使用了。
有遇到这样情况的朋友可以参照下原文,仅需要删除rake.gemspec这个文件即可。