11

我正在尝试从我的 OS X 机器到运行的 linux 机器上使用一致:CentOS release 6.10 (Final)

我不得不为 linux 机器做一个 unison 2.51 的静态编译。这个版本是:

unison version 2.51.2 (ocaml 4.02.3)

在 OS X 机器上,我使用了“brew install 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.

我该怎么做才能让一致工作?

4

3 回答 3

8

你必须在你的 linux 机器上从源代码编译 ocaml 和 unison。

Ocaml:您可以在https://caml.inria.fr/pub/distrib/上找到 ocaml 4.08 。编译说明在自述文件中。

Unison:从https://github.com/bcpierce00/unison/commits/master,您将看到提交 acfa105 是与 Ocaml 4.08.1 兼容的经过验证的提交。下载此提交并运行 make。

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

于 2019-11-01T23:05:23.180 回答
2

当我遇到这个问题时,我正在运行带有几个容器的 docker,并使用 docker-sync 使事情与我的 Mac 上的本地文件保持同步。

我的mac安装了以下内容:

unison -version
unison version 2.51.2 (ocaml 4.06.1)

我使用的网络同步 docker 容器:

unison -version
unison version 2.51.2 (ocaml 4.08.1)

对我有用的解决方案是:

brew uninstall unison && brew install unison
于 2020-02-25T03:09:45.183 回答
2

类似的问题 - 我可以通过在两台 PC 上安装相同的 deb 文件来解决它 - 并删除一些文件。事实上,我决定将我的笔记本电脑上的 deb 文件也安装在我有不同发行版的 PC 上。这必须使用 dpkg 绕过 apt/synaptics 来完成。- unsion-gtk 也必须这样做。所以拯救我的是下载这两个 deb 文件,我已经安装在我的笔记本电脑上。就我而言,这是 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 的终端中

在笔记本电脑和 PC 上,我确实删除了隐藏文件夹“.unison”(在我的主目录中)中的所有文件,文件名以“fp ...”开头,这些文件是在我将笔记本电脑 A 更新为较新版本的 ubuntu。

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

 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

现在。一切正常。该黑客的更多背景信息:https ://bugs.launchpad.net/ubuntu/+source/unison/+bug/1868502

于 2020-10-06T13:32:56.407 回答