如何在一个系统上使用多个版本的unison?

如何在一个系统上使用多个版本的unison?

我有两台机器。一个是 unison v. 2.40 (Debian Jessie),另一个是新的 (Debian Stretch),我在其中安装了 package unison-all,它引入了 unison 版本 2.32、2.40 和 2.48。然而,我无法让我的 2.40 在新机器上运行,因为它只提供了 2.48 版本。无论我做什么,我都会得到:

expected "Unison 2.40\n" but received "Unison 2.48\n\000\000\000\000\017",

unison-all我通过明确删除并安装 v.2.40解决了这个问题,但我想知道如果我想在这台机器上使用两个并发版本的 unison 该怎么办。

答案1

我自己也遇到了这个问题,花了好长时间才找到答案!所以这就是答案,它对我有用。

要使用多个版本的 unison,请安装unison-all.然后...

在上使用多个版本的 Unison客户

通过附加版本号来选择要运行的特定版本,如下所示:

unison-2.40 ...

或者,如果您想运行最新版本,只需键入:

unison

在上使用多个版本的 Unison服务器

指示 Unison 的客户端版本使用该标签调用服务器上匹配的 Unison 版本-addversionno,如下所示:

unison -addversionno

欲了解更多详情

如果你仍然得到

Fatal error: Received unexpected header from the server

看到这个解决方案

答案2

安装更容易静态 Unison 版本,而不是希望每个客户端和服务器都有完全相同的系统版本。

我从每个系统中删除了 unison Debian 软件包,并在各处启动了完全相同的脚本:

#!/bin/bash
set -e

mkdir /tmp/unison
cd /tmp/unison
curl -LO https://github.com/bcpierce00/unison/releases/download/v2.53.4/unison-2.53.4-ubuntu-x86_64-static.tar.gz
tar xvfz unison-2.53*
cd bin
chmod 755 unison unison-fsmonitor
sudo chown root:root unison unison-fsmonitor
sudo mv unison unison-fsmonitor /usr/local/bin/
cd /tmp/
rm -r unison
unison -version

每个客户端和服务器现在都可以一起交谈,因为他们同意:

❯ unison -version
unison version 2.53.4 (ocaml 4.14.1)

libc、ocaml 或保存包不再有问题!即使在旧服务器上,我也可以使用最新的 Unison 版本。

相关内容