Centos 如何跨OS X和linux使用unison?由于ocaml版本而导致的致命错误

Centos 如何跨OS X和linux使用unison?由于ocaml版本而导致的致命错误,centos,macos-sierra,unison,Centos,Macos Sierra,Unison,我正在尝试将unison从我的OS X机器应用到运行:CentOS 6.10版(最终版)的linux机器上 我必须为linux box进行unison 2.51的静态编译。这个版本是: unison version 2.51.2 (ocaml 4.02.3) 在OSX机器上,我使用了“brew安装unison”。这给了我: unison version 2.51.2 (ocaml 4.08.1) 如果我现在尝试使用unison,我会得到: Fatal error during unmarsh

我正在尝试将unison从我的OS X机器应用到运行:CentOS 6.10版(最终版)的linux机器上

我必须为linux box进行unison 2.51的静态编译。这个版本是:

unison version 2.51.2 (ocaml 4.02.3)
在OSX机器上,我使用了“brew安装unison”。这给了我:

unison version 2.51.2 (ocaml 4.08.1)
如果我现在尝试使用unison,我会得到:

Fatal error during unmarshaling (input_value: ill-formed message), possibly because client and server have been compiled with differentversions of the OCaml compiler.

我该怎么做才能让unison正常工作?

您必须在linux机器上从源代码处编译ocaml和unison

Ocaml:您可以在上找到OCAML4.08。自述文件中有编译说明

Unison:从中,您将看到commit acfa105是与Ocaml 4.08.1兼容的经验证的提交。下载此提交并运行make


我遇到了完全相同的问题,并能够通过上述步骤解决它。

我在运行docker时使用了一些容器,并在遇到此问题时使用docker sync与Mac上的本地文件保持同步

我的mac安装了以下组件:

unison -version
unison version 2.51.2 (ocaml 4.06.1)
我使用的web同步docker容器:

unison -version
unison version 2.51.2 (ocaml 4.08.1)
对我有效的解决方案是:

brew uninstall unison && brew install unison

类似的问题-我可以通过在两台PC上为unsion安装相同的deb文件并删除一些文件来解决。事实上,我决定将我笔记本电脑上的deb文件也安装在PC上,在PC上我有一个不同的发行版。这必须使用dpkg绕过apt/突触来完成对于unsion gtk也必须这样做。所以我省下的是下载这两个deb文件,我已经在笔记本电脑上安装了allready。在我的例子中,这是unison_2.48.4-1+b1_amd64.deb和unison-gtk_2.48.4-1+b1_amd64.deb。我把它们安装在一个带有 sudo dpkg-i unison_2.48.4-1+b1_amd64.deb sudo dpkg-i unison-gtk_2.48.4-1+b1_amd64.deb

在笔记本电脑和个人电脑上,我确实删除了隐藏文件夹“.unison”(在我的主目录中)中的所有文件,文件名以“fp…”开头,这些文件是在我将笔记本电脑更新到更新版本的ubuntu后创建的

为了确保我的电脑不会“升级”unison和unison gtk,我在/etc/apt/preferences.d/an文件夹中创建了一个文件名为“unison”的文件,并将此文本写入我的文件“unison”:

现在。一切正常。
有关该黑客的更多背景信息:

我目前正在Mac(10.14.6)上的unison 2.51.2(ocaml 4.08.1)和Linux(CentOS 7.6,3.10.0-957.5.1.el7.x8664)上的unison 2.51.2(ocaml 4.05.0)之间解决这个问题。CentOS 7的最新ocaml发行版是4.05.0,当我从源代码处编译ocaml 4.08.1时,测试套件失败了200多个测试。
 Package: unison
 Pin: version 2.48.4-1+b1
 Pin-Priority: 1000

 Package: unison-gtk
 Pin: version 2.48.4-1+b1
 Pin-Priority: 1000