无法在 Windows 10 中安装 tiny_tds
Can´t install tiny_tds in Windows 10
当我运行:
gem install tiny_tds
输出告诉我需要安装 FreeTDS。接下来,它向我展示了一些配置选项,我可能需要一个选项。选项如下:
--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-sybdblib
问题是 none 个选项有效。这是发生的情况的示例:
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 -I C:/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.out
我找到了一个下载的 FreeTDS 二进制文件来尝试 Windows 手动安装,但我不知道将它们放在哪里或如何使用它们。
好吧,感谢 Jared Beck,我终于能够预编译 FreeTDS 二进制文件。我过去在 Rails 上使用过 Ruby,但从来不需要这样做,所以我不知道语法。我认为 运行 命令 gem install tiny_tds
包括 FreeTDS 安装。然后我注意到配置选项并尝试 运行 gem install tiny_tds -- --with-freetds-dir
,但不知道该命令需要目录作为参数。
最后,我从 https://sourceforge.net/projects/freetdswindows/ 下载了 FreeTDS Windows 二进制文件,将其解压缩到 C:,然后 运行 使用以下命令:
gem install tiny_tds -- --with-freetds-dir=C:\freetds-1.00
多亏了之前的帖子,我通过查看 freetds windows zip 文件和安装的 pacman 包弄明白了。
它可能正在 C:\Ruby31-x64\msys64\ucrt64\include 寻找包含文件夹 headers
但是它位于 C:\Ruby31-x64\msys64\ucrt64\include\freetds
有趣的是,.exe 文件位于 C:\Ruby31-x64\msys64\ucrt64\bin 并被发现。
gem install tiny_tds -- --with-freetds-include=C:\Ruby31-x64\msys64\ucrt64\include\freetds
当我运行:
gem install tiny_tds
输出告诉我需要安装 FreeTDS。接下来,它向我展示了一些配置选项,我可能需要一个选项。选项如下:
--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-sybdblib
问题是 none 个选项有效。这是发生的情况的示例:
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 -I C:/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.out
我找到了一个下载的 FreeTDS 二进制文件来尝试 Windows 手动安装,但我不知道将它们放在哪里或如何使用它们。
好吧,感谢 Jared Beck,我终于能够预编译 FreeTDS 二进制文件。我过去在 Rails 上使用过 Ruby,但从来不需要这样做,所以我不知道语法。我认为 运行 命令 gem install tiny_tds
包括 FreeTDS 安装。然后我注意到配置选项并尝试 运行 gem install tiny_tds -- --with-freetds-dir
,但不知道该命令需要目录作为参数。
最后,我从 https://sourceforge.net/projects/freetdswindows/ 下载了 FreeTDS Windows 二进制文件,将其解压缩到 C:,然后 运行 使用以下命令:
gem install tiny_tds -- --with-freetds-dir=C:\freetds-1.00
多亏了之前的帖子,我通过查看 freetds windows zip 文件和安装的 pacman 包弄明白了。
它可能正在 C:\Ruby31-x64\msys64\ucrt64\include 寻找包含文件夹 headers 但是它位于 C:\Ruby31-x64\msys64\ucrt64\include\freetds 有趣的是,.exe 文件位于 C:\Ruby31-x64\msys64\ucrt64\bin 并被发现。
gem install tiny_tds -- --with-freetds-include=C:\Ruby31-x64\msys64\ucrt64\include\freetds