如何在 Ubuntu 16.04 xenial 上安装 Unison 2.40(解决“致命错误:收到意外标头”)

如何在 Ubuntu 16.04 xenial 上安装 Unison 2.40(解决“致命错误:收到意外标头”)

在我的其他电脑上,我有 unison 版本 2.40.102(这是最新可用的版本),而在我的桌面 ubuntu 16.04 xenial 上,我有 unison 版本 2.48.3。

尝试同步时:

kayd@Trunk:~$ unison . ssh://pi@mizu/.
...
Fatal error: Received unexpected header from the server:
 expected "Unison 2.48\n" but received "Unison 2.40\n\000\000\000\000\017", 
which differs at "Unison 2.40".

各种来源都告诉我要安装unison-all,我照做了,但它只包含 2.48 版本:

kayd@Trunk:~$ ls -l /usr/bin/unison*
lrwxrwxrwx 1 root root      24 Mai 20 22:15 /usr/bin/unison -> /etc/alternatives/unison
lrwxrwxrwx 1 root root      13 Mär 18 16:10 /usr/bin/unison-2.48 -> unison-2.48.3
-rwxr-xr-x 1 root root 2169968 Mär 18 16:10 /usr/bin/unison-2.48.3
lrwxrwxrwx 1 root root      13 Mär 18 16:10 /usr/bin/unison-latest-stable -> unison-2.48.3

我的问题是:

如何在 xenial 上安装 2.40 版本?

答案1

我找到了一个 deb 文件这里,这是值得信赖的,但显然无论如何都可以工作,下载了 64 位版本并使用

sudo dpkg --install ./unison-gtk_2.40.102-2ubuntu1_amd64.deb

安装。基于脊状的答案我用来unison-2.40-gtk调用 unison 与我的 RaspberryPis 同步

答案2

今天我遇到了同样的问题:服务器采用 raspbian(unison 2.40)且有两个客户端(Ubuntu 14.04 / unison 2.40 和 Ubuntu 16.04 / unison 2.48)。

由于 raspbian,我无法(轻松)在服务器上升级到 2.48。但将 2.40 二进制文件从 Ubuntu 14.04 复制到 Ubuntu 16.04 却有效:

ubu1604# cd /usr/bin; sudo scp -p ubu1404:/usr/bin/unison-2.40.102* .

然后您可以直接调用,或者更改为相应二进制文件的unison-2.40.102链接。/etc/alternatives/unison*

编辑:

在我的第二台机器上从 14.04 升级到 16.04 之后,我再次遇到了这个问题,获取并安装 .deb 文件有所帮助,感谢 kay_D。

仅更改 /etc/alternatives 中的链接是不够的,因为相应的 .desktop 文件直接调用了 unison 二进制文件。因此我更改了 /usr/share/applications/unison-gtk.desktop

Exec=unison-gtk

(有时我更喜欢从菜单而不是终端调用程序)

答案3

是的,您运行的 Unison 版本必须相同。这是因为 Unison 用于跟踪内容的存档文件格式在每个新版本中都有改进

如果你确实想在 Xenial 上安装 2.40,只需下载Unison 的来源,用OCaml编译并安装。

虽然,我建议你在另一台电脑上安装较新版本的 Unison

相关内容