ruby-odbcがインストールできず、解決するまでに割と時間がかかったのでメモを残します。
注意
TD-agent + ruby-odbcでのインストールメモになります。
環境
- Windows10 64bit
- Ruby2.4
- td-agent-3.5.1
最初の現象
- td-agentインストール(td-agent-3.5.1-0-x64.msi)
- ruby-odbcインストール($ fluent-gem install ruby-odbc)
こんなエラーが・・・
Td-agentCommandPrompt.
ERROR: Error installing ruby-odbc:
ERROR: Failed to build gem native extension.
調べてみると、
- ruby-odbcを入れるにはDevKitが必要
- td-agentにはDevKitは入っていない
- td-agent3.5のrubyは2.4
- ruby2.4からDevKitはMSYS2を使っている
とのこと。
というわけで、MSYS2をインストール。
MSYS2をインストール + 他に必要なパッケージもインストール
MSYS2のインストーラーをダウンロードし、インストール。
インストーラーに従ってポチポチするだけでOKです。
インストールが完了すると「MSYS2 MSYS Shell」が立ち上がるので、パッケージを更新します。
MSYS2MSYSShell.
$ pacmamn -Syu
他には、gccとmakeも必要なので、インストールします。
MSYS2MSYSShell.
$ pacman -S mingw-w64-x86_64-toolchain
$ pacman -S make
ruby-odbcインストールのリベンジ
Td-agent Command Promptを起動し、MSYS2にPathを通してあげて、インストールすると成功しました。
Td-agentCommandPrompt.
$ set PATH="%~dp0embedded\bin";C:\msys64\mingw64\bin;C:\msys64\usr\local\bin;C:\msys64\usr\bin;C:\msys64\bin;%PATH%
$ fluent-gem install ruby-odbc
...
Successfully installed ruby-odbc-0.99999
まとめ
MSYS2をインストールして、gccとmakeをインストールして、MSYS2のpathを通してやればインストールできるようになります。