Windows下支持最新的ruby-debug-ide-0.4.x

如果在Windows下需要用Netbeans调试Rails 3.0以上项目,需要ruby-ide-0.4.x支持。

 

执行:

 

gem install ruby-debug-ide

 

基本上会看到 ruby mkrf_conf.rb 失败的消息

Gem files will remain installed in C:/develop/ruby187/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.16 for inspection.

Results logged to C:/develop/ruby187/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.16/ext/gem_make.out

 

稍微深入一点,知道是因为 ruby-debug-ide-0.4.x依赖于 ruby-debug-base-0.10.x,而这个Gem分为Linux和windows两个版本

 

手工下载 ruby-debug-base windows版本,如:

http://rubygems.org/gems/ruby-debug-base/versions/0.10.4-mswin32

 

gem install ruby-debug-base-0.10.4-mswin32.gem

 

成功。

 

再 gem install ruby-debug-ide,依然失败。

 

仔细阅读:

ruby-debug-ide的mkrf_conf.rb,发现如下语句:

    if RUBY_VERSION < "1.9"
      inst.install "ruby-debug-base", '>=0.10.4'
    else
      inst.install "ruby-debug-base19", '>=0.11.24'
    end

第二行代码会导致Gem寻找或安装 ruby-debug-base 0.10.4版本

查询: Gem::DependencyInstaller代码,应该使用平台相关的查询方法,类似于:

      inst.install "ruby-debug-base", '>=0.10.4', ‘mswin32'

,但Gem::DependencyInstaller却没有找到相应能提供根据平台进行查找的方法(本人的Gem版本为1.3.7)。

遂用最简便的方法,将原先已经安装的  ruby-debug-base-0.10.4-mswin32重新打包命名:ruby-debug-base-0.10.4

从你的gem的specifications里面找到  ruby-debug-base-0.10.4-x86-mswin32.gemspec
放到相应的ruby-debug-base-0.10.4 Gem中,并重命名为  ruby-debug-base.gemspec
并修改:
Gem::Specification.new do |s|
  s.name = %q{ruby-debug-base}
  s.version = "0.10.4"
  s.platform = %q{mswin32}
  ...
end
注释掉 s.platform那行: 
Gem::Specification.new do |s|
  s.name = %q{ruby-debug-base}
  s.version = "0.10.4"
  #s.platform = %q{mswin32}
  ...
end

cd 该gem的安装目录:
gem build  ruby-debug-base.gemspec
生成相应的 ruby-debug-base-0.10.4.gem
gem install  ruby-debug-base-0.10.4.gem
而后再 gem install ruby-debug-ide-0.4.16.gem

打开Netbeans,以debug方式启动项目,发现一切正常,搞定!


总结而言,关键就是需要将Gem ruby-debug-base-0.x.y-mswin32重新命名为ruby-debug-base-0.x.y

 

附件提供改过名的 ruby-debug-base-0.10.4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值