5

Por lo tanto, no puedo por la vida de mi conseguir que esto funcione correctamente. Mi objetivo final es conseguir que la gema dbd-odbc esté instalada y funcionando, y por varias cosas que he leído, necesito instalar el ODBC binding para ruby ​​junto con la gema dbd-odbc. Bueno, puedo agarrar la gema DBD-ODBC instalado muy bien, pero cuando se trata de tratar de instalar los tanques de unión hacia fuera en mí de esta manera:No puedo obtener el kit de desarrollo de ruby ​​que funcione para 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 '' 

Así que ... leer a través de él, se dice que tiene que instalar primero las herramientas de desarrollo. Fino y elegante. Voy al here, y tomo el kit de desarrollo. Vagué here, y leí las instrucciones sobre cómo instalarlo. Lo instalo
En una nota lateral: lo he intentado con una instalación de 1.9.1 con un clic desde el sitio del instalador de Ruby. Lo he intentado con binarios mswin-32 precompilados de ruby, en 1.8.6, 1.8.7 y 1.9.1. Ninguno de ellos ha trabajado.
Me quedaré con el instalador de un solo clic ya que eso es lo que parecen estar usando todas las instrucciones que he encontrado en la web. Multa. Dice editar mi archivo fstab. Hago. Aquí está mi configuración actual:
Mi instalación de ruby ​​está sentada en: C:\tools\ruby\ruby19 El devkit se ha extraído en este directorio, y puedo verificar el/bin y ver gcc.bat, make.bat y sh.bat allí.
Sigo las instrucciones y modifico mi archivo devkit/msys/1.0.11/etc/fstab. Ahora parece que esto:
C:/tools/ruby/ruby19/devkit/gcc/3.4.5 /mingw C:/tools/ruby/ruby19/devkit/msys/1.0.11/usr/local /usr/local

No importa lo que parece hacer, no puedo por la vida de mí conseguir la joya ODBC vinculante para compilar a extensiones nativas. Sigo recibiendo el mismo error una y otra vez. Esto se está poniendo muy frustrante, ¡por favor ayuda!

Respuesta

2

Te estás matando.

para Win32 DLL sistemas operativos de 0,997 están disponibles en i386-msvcrt-ruby-odbc.zip. Contiene los archivos odbc.so y odbc_utf8.so que deben copiarse en el directorio .../ruby ​​/ 1.8/i386-msvcrt de instalaciones de Ruby 1.8 basadas en MSVC.

Intenta poner esos archivos donde se recomiendan, luego instala esa versión de la gema y observa cómo funciona.

+1

Ya sabes, probé esto una y otra vez, pero no pude leer la parte clave de esa declaración ... de las instalaciones de Ruby 1.8 basadas en MSVC. Así que de vuelta a 1.8.7 un instalador de un clic, copiando esos archivos .so donde sea necesario y parece estar funcionando. Supongo que aún no está listo para 1.9. – bergyman

1

Ok, creo que este es el mínimo. Desinstalé todo: c: \ ruby, MinGW, MSYS, todo lo que intenté hacer para que esto se ejecutara.

Entonces:

  1. instalado Rubí un clic: http://rubyforge.org/frs/download.php/69034/rubyinstaller-1.8.7-p249-rc2.exe
  2. "joya instalar activerecord-sqlserver adaptador"
  3. "joya instalación rieles"
  4. instalados devkit: descomprimido rubyforge.org/frs/download.php/66888/devkit -3.4.5r3-20091110.7z en c: \ ruby ​​
  5. "gem install ruby-odbc", que se compiló e instaló v. 0.999
  6. hizo un DSN llamado dev-viajes-DSN usando "Panel de control> Herramientas administrativas> Orígenes de datos (ODBC)"
  7. poner esto en mi database.yml:

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

Ejecuto "rake db: schema: dump", que funcionó bien.

Es extraño, pero incluso si se pone un montón de las mismas cosas en el Administrador de DSN, hay que ponerlos en database.yml, también.

De todos modos, los que parecen ser los requisitos mínimos para utilizar SQL Server/Rails 2.3.5/Windows.

1

Esto funcionó para mí con raíles 3 también. Me encontré con 2 atracones en el proceso. 1. Ruby 1.9.2 no me dejaba instalar ruby-odbc, así que cambié de nuevo a 1.8.7. y 2. Para Rails 3 que tiene que incluir las siguientes líneas en su Gemfile:

joya 'rubí ODBC'

Después de eso, las instrucciones anteriores dio 'activerecord-sqlserver adaptador'

joya sin problemas!

2

Tuve un problema muy similar, tratando de DBI y ODBC para trabajar con Ruby 1.9 en Windows 1.8 .. Rubí funcionó bien, pero 1.9 presenta una gran cantidad de problemas. Finalmente lo tengo a trabajar.

  1. Quita todas las demás versiones de Ruby, Dev Kit, etc. de mi sistema (o simplemente retrocede en algún lugar). Intentar que Dev Kit trabaje con sistemas "sucios" produjo problemas por alguna razón ... ¿Conflictos de gemas?
  2. Obtenga el último instalador de Ruby de here e instálelo.
  3. Obtenga el kit de desarrollo de github.com/oneclick/rubyinstaller/wiki/development-kit y siga las instrucciones.
  4. Obtenga la última joya Ruby ODBC de www.ch-werner.de/rubyodbc/. Descárguelo como la gema Ruby y guarde la ubicación.
  5. Instalar ODBC Rubí joya ejecutando este comando: gem install ruby-ODBC-0.99994.gem --platform = rubí
  6. Instalar DBI: gem install DBI
  7. Instalar DBD-ODBC joya: joya instalar DBD -odbc
  8. Ejecuta una prueba simple, deberías estar listo para empezar.
1

Ron, para que todo esto funcione, ¿recuerda a crear una nueva conexión ODBC en el origen de datos ODBC?

Para Ruby 1.8, no necesita 'hacer' nada; colocar esos archivos odbc de i386-msvcrt-ruby-odbc.zip debería ser suficiente (instrucciones provistas en ch-werner.de/rubyodbc)

¿Has descargado dbi & dbd-odbc gems?

Cuestiones relacionadas