Mac
CentOS
AWS

unisonでローカルとサーバをお手軽に同期する

はじめに

ローカルとサーバのディレクトリを同期する必要があったので、今回unisonを使ってみました。
予想以上にunisonのバージョンを揃えたりと面倒だったのでインストール手順を残しておきます。
基本的に上からコピペすれば動くと思います。

ローカル

unisonのインストール
$ brew install unison
# プロジェクトを作成
/Users/user.name/.unison/project.prf

下記参考に諸々書き換える(IPはhostでいける)
これがどこのサーバと同期するか、何を同期するかの設定ファイルとなります。

# リモートのディレクトリ
root = ssh://project.com//var/www/project
# ローカルのディレクトリ
root = /Users/user.name/Desktop/project


ignore = Path vendor
ignore = Name {tmp,log}
auto = true
times = true
prefer = newer

サーバ

結構長い
コケるけど無視

curl -kL https://raw.github.com/hcarty/ocamlbrew/master/ocamlbrew-install | bash

インストールが終わるとocamlbrewというディレクトリが出来ます。

.bashrcに下記をコピペ(ocamlbrewのバージョンは合わせてください)

.bashrc
__ocaml_path__="$HOME/ocamlbrew/ocaml-4.03.0" # ~/ocamlbrewをlsしてみて適切なバージョン番号に置き換えてください
PATH="$__ocaml_path__/bin:$PATH"
export OPAMROOT="$__ocaml_path__/.opam"
source "$OPAMROOT/opam-init/init.bash" > /dev/null 2> /dev/null || true

パスを通す

source ~/.bashrc

インストール

ここも少し長い

opam switch 4.03.0

インストール

opam install oasis utop Batteries ocamlscript
sudo yum install ocaml ocaml-camlp4-devel ctags ctags-etags

ファイルをダウンロード&移す

サーバにインストールするために、パッケージをダウンロードします。
ローカルとサーバのunisonのバージョンを合わせる必要があるので、ローカルにインストールしたバージョンをダウンロード
してください。

サイト http://www.seas.upenn.edu/~bcpierce/unison//download/releases/

macで解答

解凍したファイルをサーバにアップロード

scp -r /Users/shoichi/Downloads/src project.com:/home/webmaster

アップロードしたファイルに移動してビルド

make
# ビルドが終わったらこのコマンドをインストールしたら叩く
sudo cp -v unison /usr/bin/

これでセットアップが完了しました。
あとはローカルに戻って下記を実行して、同期していきましょう。

実行

unison project -repeat watch

以上です。

参考

http://qiita.com/yuya_presto/items/f35f556770196f964810
https://plus.google.com/103080563170453474101/posts/ZMBytWVkhTn
https://www.digitalocean.com/community/questions/install-unison-in-centos-7