====== Unison ======
Unison ist ein Tool um Dateien in zwei Richtungen zu synchronisieren.
===== Versionen =====
Unison ist anspruchsvoll, was die Kompatibilität zwischen verschiedene Unisonversionen und die Kompatibilität zu den Ocaml-Versionen, mit denen Unison kompiliert wird:
* Die verwendete Minorversion ''y'' von Unison (Version ''x.y.z'') muss auf beiden Seiten übereinstimmen!
* Die zum Kompilieren verwendete Ocaml-Version muss auf beiden Seiten übereinstimmend entweder < 4.02 oder > 4.02 sein (siehe [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802919|Bugreport]])!
* Unison lässt sich nicht mit jeder Ocaml-Version kompilieren. Funktionierende Kombinationen sind beispielsweise:
^Unison^Ocaml^
|2.48.4 |4.05|
|2.48.15v4 |4.06|
|2.51.5|4.12.0|
|2.53|4.12.0|
Ab Version 2.52 gibt es eine Vorwärts- und Rückwärtskompatibilität, siehe [[https://github.com/bcpierce00/unison/wiki/2.52-Migration-Guide|2.52 Migration Guide]]
===== Kompilieren =====
Auf exotischeren Plattformen wie ARM oder PowerPC kann das Kompilieren zu nativen Code [[synology#unison|Probleme]] bereiten.
===== Angabe des Remote-Pfads =====
Standardmäßig ist der Pfad auf dem Remoteserver relativ zum Homeverzeichnis. Für
unison /local/path ssh://user@remoteserver/dir/
also /home/user/dir. Der Pfad kann mit einem zusätzlichen Slash auch absolut (also /dir) angegeben werden:
unison /local/path ssh://user@remoteserver//dir
===== Windows =====
Unison ist auch für Windows [[https://github.com/bcpierce00/unison/releases|verfügbar]].
Die Pakete enthalten auch die benötigten GTK-Bibliotheken, so dass es nicht mehr nötig ist diese aus anderen Projekten wie [[https://sourceforge.net/projects/pidgin/files/GTK%2B%20for%20Windows/|GTK for Windows]] aus dem [[https://pidgin.im/|Pidgin-Projekt]] zu extrahieren.
==== Verschlüsselung via SSH ====
Um Unison über ein Netzwerk verschlüsselt zu benutzen, ist ein SSH-Client erforderlich.
Der ab Windows 10 enthaltende SSH-Client ist ausreichend.
==== Einstellungen ====
Da die Dateirechte nicht wie unter Linux mitsyncronisiert werden können, müssen folgende Optionen gesetzt werden:
dontchmod = true
perms = 0
===== Links =====
* [[https://www.cis.upenn.edu/~bcpierce/unison/|Homepage]]
* [[https://github.com/bcpierce00/unison/releases|Binarys für Linux. Windows, MacOS]]
* [[Synology#Unison|Unison für ein Synology-NAS kompilieren]]