2013-10-20

Windows で knife-solo を使う (msys-rsync 編)

knife-solo はリモート側へのレシピ転送に rsync を使っています。この肝となる rsync を Windows でどう用意するかが鍵ですが、現状選択肢は2つあって、Cygwin の rsync と MSYS の rsync です。

MSYS 版と比べて Cygwin 版の rsync は特にディレクトリエントリの取得の辺りが特に遅いように感じます。よって MSYS の rsync を使いたいところですが、knife-solo は Windows では /cygdrive/c/... というパスに 変換して渡してくれる 親切な仕組みがあるので、デフォルトのままの msys-rsync だと上手くいきません。

本来は knife-solo の側が気を利かせるべきかもしれませんが、とりあえず急場をしのぐ方法として、MSYS の fstab (C:\MinGW\msys\1.0\etc\fstab) に対して /cygdrive/c に C:\ をマウントする設定を入れてしまうか、mklink で NTFS 上にシンボリックリンクを張ると良いみたいです。リンクを張る場合は、C:\MinGW\msys\1.0\cygdrive\c => C:\ とすればよいです。