I have installed unison 2.48.4 on three machines, two running Linux Mint 17 and one Linux Mint 18. I sync via SSH.
The two 17's sync with no problem. However the 18 cannot sync with either of the other two. The list of potential transfers is generated but when I press "GO" I get the following:
Fatal error: Server: Fatal error during unmarshaling (input
value: bad bigarray kind), possibly because client and server
have been compiled with different versions of the Ocaml compiler.
I get the same message when I use the graphical or the command-line version of unison client. Also when I try unison 2.48.3 on the client side, which makes me believe it is the difference in the mint version (17 vs 18) which creates the problem.
I haven't compiled anything myself, just installed from the repos or downloaded deb packages.
Best Answer
The Unison protocol is version-specific. Version N can't talk to version M with M ≠ N.
Debian (and derivatives: Ubuntu, Mint, …) provides a unison-all package which despite the name contains some recent-but-not-latest versions of Unison, not all past versions. I haven't checked but I'd expect
unison-all
on Mint 18 to contain the version that's on Mint 17.Alternatively, you can install all the versions of Unison that you use anywhere by copying them to
/usr/local/bin
or~/bin
in the machine that you use as your Unison hub. Theunison-NN.NN
binary only depends on the standard library so it works on any 21th century non-embedded Linux without having to install anything extra. That's what I do. You do need to remember to update this binary when a bug fix comes out.Unless you arrange to run the same version of Unison everywhere, you'll need to tell it to invoke the matching version on the remote side by putting
addversionno = true
in your profile(s).