Ruby から Subversion を利用 on Windows

Ruby から Subversion を操作できるものが無いか探したところ以下のページを発見。

というわけで、ruby(ruby 1.8.6 i386-mswin32)でSubversionを操作できるライブラリがないかと調べてみるとドキュメント & ファイル: Windows Apache 2.2.xsvn-win32-1.5.4_rb.zipがありました。 解凍したスクリプトとext配下のdllをC:\Ruby\lib\ruby\1.8\svnにコピーして使っています。

ゴリッとメモ - windowsでrubyを使ってSubversionを操作する

というわけで、早速ダウンロードしてインストールしてみたが動かない。

上記のページでは簡単に「スクリプトとext配下のdllをコピー」と書いてあるが、色々ためして以下のように配置するのが正しいようだと分かってきた。(常識かもしれんが・・・)

   %RUBY_ROOT%
      +-- bin
      +-- doc
      +-- include
      +-- lib
      |    +-- ruby
      |         +-- 1.8
      |         +-- site_ruby
      |              +--1.8
      |                  +-- i386-msvcrt
      |                  |     +-- svn
      |                  |          +-- ext ← ここに dll を配置
      |                  +-- svn            ← ここにスクリプトを配置
      +-- man
      +-- share

で、上記のように配置して

require 'svn/clinet'

とやると、エラーが発生する。

序数 XXXX がダイナミックライブラリ LIBEAY32.dll から見つかりませんでした。

「XXXX」は数字が入っている。ググると openssl のライブラリを入れろというページが見つかるが、bin 配下にすでにある。
どうやら、svn-win32-1.5.4_rb.zip と対応した dll じゃないとダメなようなので、再度ここ (tigris.org) から、svn の本体である svn-win32-1.5.4.zip をダウンロードし、以下の3つの dll を bin 配下にコピーすればやっとエラーが出なくなった。

  • libeay32.dll
  • ssleay32.dll
  • libsasl.dll

続きは明日。