Cuando corro:
gem install tiny_tdsLa salida me dice que necesito FreeTDS instalado. A continuación, me muestra algunas opciones de configuración y que probablemente necesitaré una opción. Las opciones son las siguientes:
--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 --without-make-prog --srcdir=. --curdir --ruby=C:/Ruby31-x64/bin/$(RUBY_BASE_NAME) --help --with-freetds-dir --without-freetds-dir --with-freetds-include --without-freetds-include=${freetds-dir}/include --with-freetds-lib --without-freetds-lib=${freetds-dir}/lib --with-sybdb-dir --without-sybdb-dir --with-sybdb-include --without-sybdb-include=${sybdb-dir}/include --with-sybdb-lib --without-sybdb-lib=${sybdb-dir}/lib --with-sybdblib --without-sybdblib --with-sybdblib --without-sybdblibEl problema es que ninguna de las opciones funciona. He aquí un ejemplo de lo que sucede:
C:\RailsApps>gem install tiny_tds -- --with-freetds-dir Temporarily enhancing PATH for MSYS/MINGW... Using msys2 packages: mingw-w64-ucrt-x86_64-freetds Building native extensions with: '--with-freetds-dir' This could take a while... ERROR: Error installing tiny_tds: ERROR: Failed to build gem native extension. current directory: C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/tiny_tds-2.1.5/ext/tiny_tds C:/Ruby31-x64/bin/ruby.exe -IC:/Ruby31-x64/lib/ruby/3.1.0 -r ./siteconf20220308-11104- 42q9r4.rb extconf.rb --with-freetds-dir *** 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 --without-make-prog --srcdir=. --curdir --ruby=C:/Ruby31-x64/bin/$(RUBY_BASE_NAME) --help --with-freetds-dir C:/Ruby31-x64/lib/ruby/3.1.0/mkmf.rb:1807:in `dir_config': undefined method `split' for true:TrueClass (NoMethodError) defaults = Array === dir ? dir : dir.split(File::PATH_SEPARATOR) ^^^^^^ from extconf.rb:56:in `<main>' looking for freetds headers in the following directories: - /opt/local/include - /opt/local/include/freetds - /usr/local/include - /usr/local/include/freetds looking for freetds library in the following directories: - /opt/local/lib - /opt/local/lib/freetds - /usr/local/lib - /usr/local/lib/freetds extconf failed, exit code 1 Gem files will remain installed in C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/tiny_tds-2.1.5 for inspection. Results logged to C:/Ruby31-x64/lib/ruby/gems/3.1.0/extensions/x64-mingw-ucrt/3.1.0/tiny_tds-2.1.5/gem_make.outEncontré y descargué los binarios de FreeTDS para probar la instalación manual de Windows, pero no sé dónde colocarlos ni cómo usarlos.
Bueno, gracias a Jared Beck, finalmente pude precompilar los archivos binarios de FreeTDS. Usé Ruby on Rails en el pasado, pero nunca necesité hacer tal cosa, así que no conocía la sintaxis. Pensé que ejecutar el comando gem install tiny_tds incluía la instalación de FreeTDS. Luego noté las opciones de configuración e intenté ejecutar gem install tiny_tds -- --with-freetds-dir , pero no sabía que el comando requería el directorio como argumento.
Finalmente, descargué el binario de Windows FreeTDS de https://sourceforge.net/projects/freetdswindows/ , lo extraje en C: y ejecuté el siguiente comando:
gem install tiny_tds -- --with-freetds-dir=C:\freetds-1.00