Banana Pi 运行 Lubuntu 上的 Unison 问题
Unison issue on Banana Pi running Lubuntu
我正在尝试使用 Unison CLI 将我的 NAS (运行 Lubuntu) 从我的本地网络双向同步到远程服务器 (运行 Debian)。在将我的笔记本电脑文件直接与远程服务器同步之前,我一直在使用 Unison。尝试将文件从我的 NAS 同步到我的服务器时,我总是遇到问题:
Invalid argument: index out of bounds
有人知道为什么会这样吗?是否存在问题,因为 Debian 和 Ubuntu 使用的 Unison 版本不完全相同?
编辑:所以除了确保 Unison 版本号匹配并且使用相同版本的 OCaml 进行编译(正如我在下面的原始回答中所说),要让 Unison 在 Banana Pi 上工作,还需要做一件事:将其编译成字节码,而不是本机代码。事实证明(无论出于何种原因)Unison 无法像 Banana(和我的 Raspberry)Pi 那样正确编译为 ARM 处理器的本机代码。
如果您下载 Unison 的预编译版本,它应该可以正常工作,但如果您自己编译,请务必将行 Native=false
添加到 Unison Makefile。
根据 unison manual:
It is important that the version of Unison installed on the server machine is the same as the version of Unison on the client machine.
这是因为他们几乎 每次 更新都会更改存档文件的格式。您可以使用 unison -version
检查您的版本。更新 unison(或 build/install 它来自源代码)以确保您的版本匹配,然后编辑您的 post 如果您仍然遇到同样的问题。
在某些情况下,使用相同版本的 OCaml 构建统一也很重要。我使用的是 Unison 版本 2.40.63,我必须使用 OCaml 3.12.1 进行构建以避免出现问题。
我正在尝试使用 Unison CLI 将我的 NAS (运行 Lubuntu) 从我的本地网络双向同步到远程服务器 (运行 Debian)。在将我的笔记本电脑文件直接与远程服务器同步之前,我一直在使用 Unison。尝试将文件从我的 NAS 同步到我的服务器时,我总是遇到问题:
Invalid argument: index out of bounds
有人知道为什么会这样吗?是否存在问题,因为 Debian 和 Ubuntu 使用的 Unison 版本不完全相同?
编辑:所以除了确保 Unison 版本号匹配并且使用相同版本的 OCaml 进行编译(正如我在下面的原始回答中所说),要让 Unison 在 Banana Pi 上工作,还需要做一件事:将其编译成字节码,而不是本机代码。事实证明(无论出于何种原因)Unison 无法像 Banana(和我的 Raspberry)Pi 那样正确编译为 ARM 处理器的本机代码。
如果您下载 Unison 的预编译版本,它应该可以正常工作,但如果您自己编译,请务必将行 Native=false
添加到 Unison Makefile。
根据 unison manual:
It is important that the version of Unison installed on the server machine is the same as the version of Unison on the client machine.
这是因为他们几乎 每次 更新都会更改存档文件的格式。您可以使用 unison -version
检查您的版本。更新 unison(或 build/install 它来自源代码)以确保您的版本匹配,然后编辑您的 post 如果您仍然遇到同样的问题。
在某些情况下,使用相同版本的 OCaml 构建统一也很重要。我使用的是 Unison 版本 2.40.63,我必须使用 OCaml 3.12.1 进行构建以避免出现问题。