在我的其他电脑上,我有 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编译并安装。