我无法让ruby开发工具包适用于Windows XP

时间:2010-02-17 18:00:16

标签: ruby windows-xp installation rubygems development-environment

所以,我不能为我的生活做好这项工作。我的最终目标是安装和运行dbd-odbc gem,从我读过的多个内容中,我需要在dbd-odbc gem旁边安装ODBC binding ruby​​。好吧,我可以安装dbd-odbc gem就好了,但是当我尝试安装绑定时,它会像我这样在我身上:

Building native extensions.  This could take a while...
ERROR:  Error installing ruby-odbc-0.9998.gem:
        ERROR: Failed to build gem native extension.`

c:/tools/ruby/ruby-1.9.1-p376/bin/ruby.exe extconf.rb
checking for version.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --srcdir=.
        --curdir
        --ruby=c:/tools/ruby/ruby-1.9.1-p376/bin/ruby
        --with-odbc-dir
        --without-odbc-dir
        --with-odbc-include
        --without-odbc-include=${odbc-dir}/include
        --with-odbc-lib
        --without-odbc-lib=${odbc-dir}/lib
c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:364:in 'try_do': The complier failed to generate an executable file. (RuntimeError)  
You have to install development tools first.  
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:433:in 'try_cpp'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:811:in 'block in have_header'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:670:in 'block in checking_for'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:276:in 'block (2 levels) in postpone'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:250:in 'open'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:276:in 'block in postpone'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:250:in 'open'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:272:in 'postpone'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:669:in 'checking_for'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:810:in 'have_header'
        from extconf.rb:22:in ''

所以...通读它,它说我必须先安装开发工具。好又花花公子。我去here,抓住开发工具包。我徘徊here,并阅读有关如何安装它的说明。我安装它。
在旁注 - 我已经尝试过从ruby安装程序站点一键安装1.9.1。我已经尝试过使用预编译的msw-32 ruby​​二进制文件,在1.8.6,1.8.7和1.9.1之下。他们都没有工作 我会坚持使用一键式安装程序,因为这就是我遇到的所有说明似乎都在使用。精细。它说要编辑我的fstab文件。我做。这是我目前的设置:
我的ruby安装位于:C:\tools\ruby\ruby19 devkit已被解压缩到这个目录中,我可以检查/ bin并在那里看到gcc.bat,make.bat和sh.bat。
我按照说明修改我的devkit / msys / 1.0.11 / etc / fstab文件。它现在看起来像这样:
C:/tools/ruby/ruby19/devkit/gcc/3.4.5 /mingw C:/tools/ruby/ruby19/devkit/msys/1.0.11/usr/local /usr/local

无论我做什么,我都无法为我的生活获取odbc绑定gem来编译为原生扩展。我一遍又一遍地得到同样的错误。这非常令人沮丧 - 请帮忙!

5 个答案:

答案 0 :(得分:2)

你自杀了。

  

对于Win32操作系统的DLL   0.997可在i386-msvcrt-ruby-odbc.zip中找到。它包含   文件odbc.so和odbc_utf8.so   需要复制到   ... / ruby​​ / 1.8 / i386-msvcrt目录   基于MSVC的Ruby 1.8安装。

尝试将这些文件放在推荐的位置,然后安装该版本的gem,看看它是怎么回事。

答案 1 :(得分:2)

我有一个非常类似的问题,试图让DBI和ODBC在Windows中使用Ruby 1.9.Ruby 1.8运行良好,但1.9提出了很多问题。终于搞定了。

  1. 从我的系统中删除所有其他Ruby版本,Dev Kit等(或者只是将它们放回某处)。试图让Dev Kit与“脏”系统一起使用会出于某种原因产生问题...... Gem冲突?
  2. here获取最新的Ruby安装程序并安装它。
  3. 从github.com/oneclick/rubyinstaller/wiki/development-kit获取开发工具包,并按照说明进行操作。
  4. 从www.ch-werner.de/rubyodbc/获取最新的Ruby ODBC gem。将其下载为Ruby gem并保存位置。
  5. 运行此命令安装Ruby ODBC gem: gem install ruby​​-odbc-0.99994.gem --platform = ruby​​
  6. 安装DBI: gem install dbi
  7. 安装DBD-ODBC gem: gem install dbd-odbc
  8. 运行一个简单的测试,你应该好好去。

答案 2 :(得分:1)

好的,我认为这是最低限度的。我卸载了所有东西:c:\ ruby​​,MinGW,MSYS,我试图让它运行的所有东西。

然后我:

  1. 已安装 Ruby 一键式:http://rubyforge.org/frs/download.php/69034/rubyinstaller-1.8.7-p249-rc2.exe
  2. “gem install activerecord-sqlserver-adapter
  3. “gem install rails
  4. 已安装 devkit :将解压缩的rubyforge.org/frs/download.php/66888/devkit-3.4.5r3-20091110.7z解压缩到c:\ ruby​​
  5. “gem install ruby​​-odbc ”,内置并安装了v.0.999
  6. 使用“控制面板>管理工具>数据源(ODBC)”制作了一个名为dev-travel-dsn的DSN
  7. 把它放在我的database.yml:

  8. development:
        adapter: sqlserver
        mode: odbc
        dsn: dev_travel_dsn
        username: some_user
        password: some_secret
        host: some_host
    

    我运行了“rake db:schema:dump”,它运行得很好。

    这很奇怪,但即使你在DSN管理器中放了很多相同的东西,你也必须将它们放在database.yml中。

    无论如何,这些似乎是使用Sql Server / Rails 2.3.5 / Windows的最低要求。

答案 3 :(得分:1)

这对我来说也适用于rails 3。我在这个过程中遇到了两个问题。 1. Ruby 1.9.2不允许我安装ruby-odbc所以我切换回1.8.7。 2.对于Rails 3,您必须在gemfile中包含以下行:

gem'activerecord-sqlserver-adapter'

gem'ruby-odbc'

之后,上述说明完美无瑕!

答案 4 :(得分:1)

Ron,为了这一切工作,你还记得在ODBC数据源中创建一个新的ODBC连接吗?

对于Ruby 1.8,你不需要“制造”任何东西;从i386-msvcrt-ruby-odbc.zip放置那些odbc文件就足够了(ch-werner.de/rubyodbc上提供的说明)

你下载了dbi& dbd-odbc gems?