Unisonのインストールメモ

ディレクトリ間の同期をとるために、Unisonをインストールしたメモ。

Unisonとは

ディレクトリ間で同期をとるためのツールです。Rsyncと比べて、双方向で同期がとれる特徴があります。
Macに限らずWindows,Linux,各種UNIXいろんな環境で使えます。

インストール方法

Macの場合、Homebrewでインストールできます。

% brew install unison

リモートホストと同期をとる場合は、リモートホストにも同じバージョンのUnisonが必要です。バージョンが揃うように注意します。

brewの場合、オブジェクトモジュールは /usr/local/bin 配下にインストールされます。この状態でunisonを実行するとリモート側でunisonコマンドが見つからないと怒られます。unisonはどうもリモートホストにログインしたときに .profile をロードしてくれないようです。なぜだ!?

なので、/usr/local/bin/unison へのリンク /usr/bin/unison を用意しておきます。

% ln -s /usr/local/bin/unison /usr/bin/unison

リモートホストとの通信路にSSHを使うので、ssh-keygen で鍵ペアを作って、公開鍵をリモートホストに登録しておきます。

# ローカルホストで
% ssh-keygen
% scp -p ~/.ssh/id_rsa.pub remote-host:~ 

# リモートホストで
% cat id_rsa.pub >> .ssh/authorized_keys
% chmod 600 .ssh/authorized_keys
% rm id_rsa.pub

使い方

このあたりが参考になります。

Unisonの実行には同期パラメータをコマンド引数で与える方法と、ファイルでプリセットしておく方法があります。同期処理の特性上繰り返し処理になることが多いのでプリセットしておくのがよさそう。

同期先はリモートリソースを指定するように記述することになります。ローカルのディレクトリ間で同期をとりたい場合は、localhostを指定します。