如何在Windows 10上安装FreeTDS适配Ruby环境?
解决Windows上FreeTDS安装及tiny_tds适配Ruby 2.5的问题
嘿,我之前也在Windows上踩过这个坑,折腾了好久才搞定,给你一套完整的步骤,亲测能解决你的问题!
一、先明确核心问题
你说得没错,tiny_tds并不自带FreeTDS,它是依赖FreeTDS库来连接SQL Server的,所以必须先在Windows上装好FreeTDS,才能顺利安装tiny_tds。而且你用的Ruby 2.5.1不兼容tiny_tds 2.1.1,得装更高版本的tiny_tds才行。
二、FreeTDS安装步骤(两种方法选一种)
方法1:用Chocolatey快速安装(推荐,省事儿)
Chocolatey是Windows的包管理器,类似Mac的Homebrew,一键就能装好:
- 先以管理员身份打开PowerShell,执行下面的命令安装Chocolatey:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) - 安装完成后,继续在PowerShell里执行:
choco install freetds -y - 验证安装:新开一个终端(cmd或PowerShell),输入
tsql -C,如果能输出FreeTDS的版本和配置信息,就说明装好了。
方法2:手动安装FreeTDS(适合不想用包管理器的情况)
如果不想用Chocolatey,手动装也不难:
- 下载FreeTDS的64位预编译包:找对应Windows x64的稳定版zip包(注意要和你的Ruby架构匹配,你是x64-mingw32,所以必须选64位的),解压到一个没有空格的路径,比如
C:\freetds。 - 配置环境变量:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」里:
- 新建变量
FREETDS_HOME,值设为C:\freetds(就是你刚才解压的路径) - 编辑
Path变量,添加%FREETDS_HOME%\bin
- 新建变量
- 验证安装:新开终端输入
tsql -C,能输出配置信息就算成功。
三、安装适配Ruby 2.5的tiny_tds
之前你装2.1.1失败是因为这个版本不支持Ruby 2.5+,我们直接装兼容的新版本:
- 确保刚才的FreeTDS环境变量已经生效(一定要新开终端!)
- 执行gem安装命令,保险起见可以指定FreeTDS的路径:
如果用Chocolatey装的FreeTDS,路径一般是gem install tiny_tds -- --with-freetds-dir=C:\freetdsC:\ProgramData\chocolatey\lib\freetds\tools,或者直接执行gem install tiny_tds(环境变量生效的话会自动找到)。
四、常见问题排查
- 如果装gem时提示「找不到FreeTDS」:
- 检查
FREETDS_HOME路径是否正确,Path里有没有加bin目录 - 重启终端,确保环境变量生效
- 确认FreeTDS是64位的,和你的Ruby架构一致
- 检查
- 如果出现编译错误:
- 确保你的Ruby环境装了DevKit(RubyInstaller装的Ruby一般自带,要是没装的话,单独下载DevKit后执行
ruby dk.rb init和ruby dk.rb install配置一下)
- 确保你的Ruby环境装了DevKit(RubyInstaller装的Ruby一般自带,要是没装的话,单独下载DevKit后执行
内容的提问来源于stack exchange,提问作者Roger Fernandes
相关产品推荐
相关产品推荐

