Как настроить Унисон для реальной одноранговой сети?

Простой способ состоял бы в том, чтобы добавить команду к Вашему $HOME/.profile файл (можно создать его, если это не существует):

setxkbmap se

Это должно заставить его работать каждый раз, когда Вы входите в систему.

Обратите внимание, что необходимо использовать $HOME/.profile вместо $HOME/.bash_profile, $HOME/.bashrc или некоторый другой подобный файл. Это вызвано тем, что эта установка должна быть считана Вашим менеджером по входу в систему.

3
18.04.2014, 11:22
2 ответа

Я всегда использовал Unison в звездообразной топологии для синхронизации четырех моих машин. Причина этого в том, что это не файловая система управления версиями (например, git), а скорее инструмент синхронизации.

Если вы выберете распределенную топологию (которую вам нужно будет установить, создав файл конфигурации для каждого устройства и синхронизируя все), вы, несомненно, в конечном итоге будете выполнять большое количество ручных разрешений конфликтов, что будет мрачно. Это, безусловно, будет иметь место, если вы не вносите только самые базовые изменения в файлы в системе и только на одном устройстве за раз.

Итак, предложения:

  1. Арендуйте дешевый виртуальный сервер с достаточным пространством для хранения данных, которые вы хотите синхронизировать.
  2. Попробуйте распределенную топологию и посмотрите, не вызывает ли она слишком много проблем, чтобы ее можно было использовать.
2
27.01.2020, 21:23

Unison по своей сути является одноранговым. Именно поэтому рекомендуется топология "звезда": инструмент не имеет понятия о центральном сервере, поэтому обеспечение его работы зависит от пользователя.

Вы, конечно, можете использовать Unison в одноранговом режиме, но чуда не будет: для каждой пары машин (A,B) вам нужно выбрать одну из них (скажем, A) и создать профиль для синхронизации с B. Таким образом, если у вас n машин, вам понадобится n*(n-1)/2 профиля.

Помимо того, что вам потребуется много профилей, вы, скорее всего, столкнетесь с конфликтующими изменениями. Это внутренняя проблема ваших требований. В частности, ваша сеть может стать разделенной: если в итоге вы получите D1 = D2 ≠ D3 = D4, у вас возникнет конфликт между {D1, D2} и {D3, D4}; если вы разрешите этот конфликт, синхронизируя D1 с D3, вы получите новую версию на D1 и D3, и разные старые версии на D2 и D4: беспорядок имеет тенденцию распространяться.

Если вы действительно хотите работать исключительно в одноранговом режиме, я рекомендую использовать инструмент, который хранит историю и хорошо справляется с объединением, например git. Даже там лучше всего использовать топологию "звезда" (т.е. центральный репозиторий), потому что она обеспечивает место, где есть авторитетная последняя версия. Но если у вас нет центрального репозитория, и поэтому ваша история склонна к возникновению конфликтов, по крайней мере, git даст вам лучшие инструменты для записи истории слияний, чтобы вы могли видеть, какие части конфликтуют (что очень помогает, когда вы пытаетесь разрешить конфликты).

1
27.01.2020, 21:23

Теги

Похожие вопросы