5

所以,我不能爲我的生活得到這個正常工作。我的最終目標是安裝並運行dbd-odbc gem,並且從我讀過的多件事情中,我需要爲dbd-odbc gem旁邊的紅寶石安裝ODBC binding。好了,我就可以安裝DBD-ODBC寶石就好了,但是當涉及到試圖在我安裝它結合了坦克像這樣:我不能得到適用於Windows XP的紅寶石開發工具包

 
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的一鍵安裝進行了試用。我已經試過用預編譯的mswin-32的紅寶石二進制文件,在1.8.6,1.8.7和1.9.1下。他們都沒有工作。
我會堅持使用一鍵式安裝程序,因爲這就是我在網上看到的所有說明似乎都在使用的內容。精細。它說要編輯我的fstab文件。我做。這是我目前的設置:
我的紅寶石安裝位於: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綁定寶石編譯爲本地擴展。我不斷得到同樣的錯誤。這是非常令人沮喪的 - 請幫助!

回答

2

你在自殺。

對於Win32操作系統, 0.997的DLL在i386-msvcrt-ruby-odbc.zip中可用。它包含 文件odbc.so和odbc_utf8.so 需要被複制到基於MSVC的Ruby 1.8安裝的 .../ruby​​/1.8/i386-msvcrt目錄下 。

嘗試將這些文件放在建議的位置,然後安裝該版本的gem,並查看它是如何發生的。

+1

你知道嗎,我一遍又一遍地嘗試了這個,但是我沒有看到該語句的關鍵部分......基於MSVC的Ruby 1.8安裝。 回到1.8。7單擊一下安裝程序,將這些.so文件複製到需要的地方,它似乎正在工作。我想這只是1.9還沒有準備好。 – bergyman

1

好吧,我認爲這是最低限度。我卸載了所有的東西:c:\ ruby​​,MinGW,MSYS,我試圖讓它運行的所有東西。

然後我:

  1. 安裝紅寶石一擊:http://rubyforge.org/frs/download.php/69034/rubyinstaller-1.8.7-p249-rc2.exe
  2. 「創業板安裝的ActiveRecord - SQLSERVER適配器
  3. 「創業板安裝
  4. 安裝devkit:unzipped ruby​​forge.org/frs/download.php/66888/devkit -3.4.5r3-20091110.7z到C:\紅寶石
  5. 「創業板安裝紅寶石-ODBC」,其建造和安裝的V 0。999
  6. 提出使用 「控制面板>管理工具>數據源(ODBC)」 被稱爲DEV-旅行的DSN DSN
  7. 把這個在我的database.yml:

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的最低要求。

1

這對我來說也適用於導軌3。我在這個過程中遇到了兩個陷阱。 1. Ruby 1.9.2不會讓我安裝ruby-odbc,所以我切換回1.8.7。並且2.對於Rails 3中,你必須在您的Gemfile以下行:

寶石的ActiveRecord - SQLSERVER適配器「

寶石 '紅寶石-ODBC'

之後,上述指示工作完美!

2

我有一個非常類似的問題,試圖讓DBI和ODBC與Windows 1.9中的Ruby 1.9一起工作.. Ruby 1.8工作正常,但1.9提出了很多問題。最後讓它工作。

  1. 從我的系統中刪除所有其他Ruby版本,開發工具包等(或只是將它們從某處退出)。試圖讓開發工具包與「髒」系統產生的問題出於某種原因......寶石衝突?
  2. here獲取最新的Ruby安裝程序並進行安裝。
  3. 從github.com/oneclick/rubyinstaller/wiki/development-kit獲取開發工具包,然後按照指示進行操作。
  4. 從www.ch-werner.de/rubyodbc/獲取最新的Ruby ODBC gem。將它下載爲Ruby gem並保存位置。
  5. 通過運行該命令安裝紅寶石ODBC寶石: 寶石安裝紅寶石ODBC的0.99994.gem --platform =紅寶石
  6. 安裝DBI: 寶石安裝DBI
  7. 安裝DBD-ODBC寶石: 寶石安裝DBD -odbc
  8. 運行一個簡單的測試,你應該很好去。
1

Ron,爲了這一切工作,你是否記得在你的ODBC數據源中創建一個新的ODBC連接?

對於Ruby 1.8,你不需要'創造'任何東西;從i386-msvcrt-ruby-odbc.zip放置這些odbc文件應該足夠了(說明在ch-werner.de/rubyodbc上提供)

您是否下載了dbi & dbd-odbc gems?