2015-02-08 2 views
0

Я пытаюсь выполнить двухстороннюю синхронизацию моего NAS (работает Lubuntu) из локальной сети на удаленный сервер (работающий с Debian) с помощью Unison CLI. Я использовал Unison, прежде чем синхронизировать свои файлы с ноутбуками напрямую с удаленным сервером. Я всегда получаю проблемы при попытке синхронизировать файлы с моего NAS к серверу:Unison issue on Banana Pi running Lubuntu

Недопустимый аргумент: индекс вне границ

Кто-нибудь знает, почему это происходит? Есть ли проблема, потому что Debian и Ubuntu используют не такую ​​же версию Unison?

ответ

1

Редактировать: В дополнение к тому, чтобы убедиться, что номера версий Unison совпадают и что для компиляции использовалась одна и та же версия OCaml (как я сказал в моем первоначальном ответе ниже), есть еще одна вещь, необходимая для получения Unison работая над вашим бананом Pi: скомпилируйте его в байт-код, а не собственный код. Оказывается, что (по какой-то причине) Unison не компилируется должным образом в собственный код для процессоров ARM, как у бананов (и моей малины) Pi.

Если вы загружаете предварительно скомпилированную версию Unison, она должна работать нормально, но если вы скомпилируете себя, обязательно добавьте строку Native=false в Unison Makefile.


Согласно unison manual:

Важно, что версия Unison установлена ​​на сервере так же, как в версии Unison на клиентской машине.

Это происходит потому, что они изменяют формат файла архива в практически каждый обновления. Вы можете проверить свою версию с помощью unison -version. Обновите унисон (или создайте/установите его из источника), чтобы убедиться, что ваши версии совпадают, а затем отредактируйте сообщение, если у вас все еще есть такая же проблема.

В некоторых случаях также важно, чтобы унисон был построен с использованием той же версии OCaml. Я использую Unison версии 2.40.63, и мне пришлось строить с помощью OCaml 3.12.1, чтобы избежать проблем.