我可以在 Ubuntu 20.04 LTS 上安装适用于 Ubuntu 18.04 LTS 的 Unison 吗?

我可以在 Ubuntu 20.04 LTS 上安装适用于 Ubuntu 18.04 LTS 的 Unison 吗?

我有两台运行 Ubuntu 的机器。一台运行 Ubuntu 18.04 LTS,另一台运行 Ubuntu 20.04 LTS。我想使用齐奏在它们之间同步文件。我已经安装了齐奏以传统方式操作。例如:

sudo apt install unison-all

当我检查安装了哪个版本时,我在两台机器上都得到了此信息:

unison version 2.48.4

当我尝试在它们之间进行同步时,同步失败并收到以下消息:

解组期间发生致命错误(输入值:格式错误的消息),可能是因为客户端和服务器使用不同版本的 OCaml 编译器进行编译。

当我查看/usr/bin/unison-2.48.4两台机器时,我得到:

3377264 Oct 31  2017 /usr/bin/unison-2.48.4 [18.04]
3866920 Feb 16 10:04 /usr/bin/unison-2.48.4 [20.04]

因此,虽然版本号相同,但它们的大小和时间戳不同,我猜测这种差异就是导致错误的原因。

该问题也发布在这里:https://www.mail-archive.com/[电子邮件保护]/msg5750379.html– 但尚无解决方案。

齐奏安装在运行 Ubuntu 18.04 LTS 的机器上可以很好地同步齐奏适用于 MS Windows 10 的 2.48.4,所以这也是我想在 Ubuntu 20.04 LTS 上使用的版本。

有什么办法可以安装版本齐奏适用于 Unison 20.04 LTS 上的 Ubuntu 18.04 LTS 吗?

如果是,怎么办?

答案1

我认为更好的解决方案是

  1. 清除当前安装
  2. 在 Ubuntu 20.04 LTS 服务器上安装以前的 Debian 版本:
wget http://ftp.fr.debian.org/debian/pool/main/u/unison/unison_2.48.4-1+b1_amd64.deb
sudo dpkg -i unison_2.48.4-1+b1_amd64.deb
wget http://ftp.fr.debian.org/debian/pool/main/u/unison/unison-gtk_2.48.4-1+b1_amd64.deb
sudo dpkg -i unison-gtk_2.48.4-1+b1_amd64.deb

然后将其搁置aptitude hold unison unison-gtk。关注https://bugs.launchpad.net/ubuntu/+source/unison/+bug/1875475看看什么时候能修复。

答案2

我经过一番艰难的努力才发现了一个显而易见的常识:齐奏不仅对工具本身的版本号非常挑剔,而且对用于编译它的 OCaml 编译器也非常挑剔。看起来是为 Ubuntu 20.04 LTS 编写二进制文件的团队重新编译更新OCaml 编译器的版本比以前使用的版本要高,而不考虑向后和跨平台兼容性主要的同步工具的功能。恕我直言,这是一个重大失误。

我解决这个问题的方法是先清除齐奏在 Ubuntu 20.04 LTS 上通过易于unison-2.48.4-linux-i386-text-static.tar.gz然后使用可从以下位置下载的静态文件“手动”重新安装它:https://www.urs-mueller.ch/de/computer/index.html

我不是 Ubuntu 专家,所以我不知道这是否是正确的这种方法对我来说很有效,并且允许我再次在所有计算机之间进行同步。

答案3

另一个解决方案,从长远来看更好,特别是当您只同步 Linux 机器时,那就是安装 Unison 的 snap 版本。

此版本的 Unison 独立于系统,无论您在哪个版本的 Ubuntu、Debian 等上安装它,它始终针对相同的 OCaml 进行编译。因此,您不必担心每次 Unison 或 OCaml 发生任何变化时都会出现这些问题。目前,Unison 为 2.51.2,OCaml 为 4.02.3

看看这个:

https://unix.stackexchange.com/questions/583058/unison-and-version-compiler-conflicts/583377#583377

请记住,如果您没有使用 Ubuntu,则必须先安装 snapd:

sudo apt update
sudo apt install snapd

注销并重新登录,或重新启动系统,以确保在继续之前正确更新 snap 的路径。

然后,按照上面或此处链接中显示的步骤进行操作:

http://www.xente.mundo-r.com/zasjls/other/20/unison_en.html

相关内容