Инструменты синхронизации dotfiles Linux

Раньше, чтобы запустить одну и ту же конфигурацию Linux на трёх машинах, нужно было клонировать диск и надеяться, что оборудование совпадёт. Теперь стандартный подход: синхронизируйте dotfiles одним инструментом, храните список пакетов в Git и позвольте файлам синхронизироваться через отдельный канал. Эти семь приложений покрывают все три уровня — от синхронизации двух файлов ~/.zshrc до полной декларативной пересборки Nix.

На что обратить внимание при выборе инструмента синхронизации dotfiles

Несколько вопросов определяют структуру:

Быстрое сравнение

Приложение Лучше всего для Бесплатный тариф Платный Платформы Выделяется
chezmoi Шаблонные dotfiles с секретами Да Бесплатно Linux, macOS, Windows Шаблоны, шифрование, конфиги с учётом машины
GNU Stow Ферма символических ссылок из Git-репо Да Бесплатно Linux, macOS Самый старый, простой рабочий процесс
yadm Нативный Git для ваших dotfiles Да Бесплатно Linux, macOS Bootstrap-скрипт, альтернативные ветки на машину
dotbot Декларативная установка символических ссылок через YAML Да Бесплатно Linux, macOS Кроссплатформенность, минимальный объём
Ansible Полная конфигурация машины, не только dotfiles Да AAP платный Linux, macOS, Windows Один инструмент для флота или одного ноутбука
Syncthing Непрерывная P2P-синхронизация файлов Да Бесплатно Linux, macOS, Windows Нет облака, прямая синхронизация между машинами
Nix Home Manager Воспроизводимое окружение пользователя Да Бесплатно Linux, macOS Одна конфигурация даёт одинаковую установку всегда

Приложения

1. chezmoi — лучший выбор для шаблонных dotfiles с секретами

chezmoi рассматривает ваши dotfiles как исходный код с шаблонами для каждой машины (Go text/template) и встроенным шифрованием через age или GPG. Один репозиторий покрывает ваш рабочий Mac, домашний Linux и headless-сервер, а различия (email, плагины редактора, рабочие записи) хранятся в условных операторах шаблонов.

Недостатки: Кривая обучения синтаксиса шаблонов. Слияние результата шаблона с управляемым системой файлом требует специального паттерна, который люди обычно постигают на собственном опыте.

Цена: Бесплатно, открытый исходный код.

Платформы: Linux, macOS, Windows.

Скачать: chezmoi

Вывод: Текущий стандарт для тех, кто вырос из простых symlink-скриптов.

2. GNU Stow — лучший выбор для самого простого рабочего процесса

GNU Stow был написан в 1994 году и по-прежнему делает одно: создаёт символические ссылки из каталога пакета в домашний каталог. Репозиторий dotfiles становится “пакетом” Stow, а stow zsh создаёт символические ссылки на его содержимое. Никаких шаблонов, секретов и магии.

Недостатки: Конфиги для конкретной машины требуют нескольких веток или пакетов на хост. Секреты должны храниться где-то ещё (зашифрованный раздел, менеджер паролей).

Цена: Бесплатно, открытый исходный код.

Платформы: Linux, macOS, Windows (через WSL).

Скачать: GNU Stow

Вывод: Правильный выбор, когда ваша конфигурация небольшая и вы никогда больше не хотите думать об инструменте синхронизации.

3. yadm — лучший выбор для обработки dotfiles как одного Git-репозитория

yadm (Yet Another Dotfiles Manager) — это Git плюс удобства, специфичные для dotfiles: bootstrap-скрипты, альтернативные файлы для каждого хоста или ОС, шифрование через GPG. Поскольку это на самом деле просто обёртка вокруг Git, всё, что вы уже знаете, работает.

Недостатки: Конвенция альтернативных файлов мощна, но менее очевидна, чем шаблонизация chezmoi. История шифрования проще, чем в tools на основе age.

Цена: Бесплатно, открытый исходный код.

Платформы: Linux, macOS.

Скачать: yadm

Вывод: Самый мягкий переход от обычного Git-репо с dotfiles.

4. dotbot — лучший выбор для декларативной небольшой конфигурации

dotbot читает YAML-файл установки и создаёт символические ссылки, клонирует репо и запускает shell-команды. Он достаточно мал, чтобы его можно было встроить в ваш репозиторий dotfiles, поэтому клонирование репо и запуск ./install — это вся установка на новой машине.

Недостатки: Нет шаблонизации. Нет встроенного шифрования. Сложные машины заканчиваются длинными файлами install.yaml, которые становятся трудно читать.

Цена: Бесплатно, открытый исходный код.

Платформы: Linux, macOS.

Скачать: dotbot на GitHub

Вывод: Правильный выбор, когда вы хотите декларативный файл установки и ничего больше.

5. Ansible — лучший выбор, когда конфигурация выходит за пределы домашнего каталога

Ansible управляет целыми машинами из набора playbooks. Для личной конфигурации один playbook устанавливает пакеты, устанавливает параметры ядра, размещает dotfiles и настраивает сервисы в одном проходе. Один и тот же playbook запускается на ноутбуке или узле homelabs.

Недостатки: Избыточно для чистой dotfile-задачи. Прогоны playbook медленнее, чем ферма symlink. YAML-усталость реальна, когда вы переходите за несколько сотен строк.

Цена: Бесплатно, открытый исходный код. Ansible Automation Platform платный корпоративный уровень.

Платформы: Linux, macOS, Windows.

Скачать: Ansible

Вывод: Инструмент для тех, кто хочет один рабочий процесс для своего ноутбука и серверов.

6. Syncthing — лучший выбор для файлов, не для конфигов

Syncthing — это P2P-синхронизация файлов, которая должна работать рядом с вашим менеджером dotfiles. Храните декларативные конфиги в Git, но позвольте Syncthing перемещать несколько сотен гигабайт Documents, Music и файлов проектов между машинами без участия облачного провайдера.

Недостатки: Это совсем не инструмент dotfiles. Принесите свои навыки разрешения конфликтов. Начальная синхронизация большой папки занимает столько времени, сколько позволяет самое медленное соединение.

Цена: Бесплатно, открытый исходный код.

Платформы: Linux, macOS, Windows.

Скачать: Syncthing

Вывод: Вторая половина реальной мультимашинной конфигурации, которую один инструмент dotfiles не заменит.

7. Nix Home Manager — лучший выбор для полной воспроизводимости

Nix Home Manager описывает всё ваше окружение пользователя в Nix-выражениях: пакеты, dotfiles, сервисы, всё. Новая машина получает nix run home-manager -- switch и поднимается идентично каждой другой машине в flake.

Недостатки: Кривая обучения Nix реальна. Некоторые проприетарные приложения не имеют Nix-пакетов. Откаты магичны, когда работают, и мучительны, когда канал ломается.

Цена: Бесплатно, открытый исходный код.

Платформы: Linux, macOS.

Скачать: Nix Home Manager

Вывод: Правильный выбор для тех, кто готов инвестировать в Nix с самого начала для истинной воспроизводимости.

Как выбрать правильный

Часто задаваемые вопросы

Где я храню секреты в репозитории dotfiles? Никогда в открытом виде. chezmoi и yadm оба шифруют при хранении. Для обычных Git-репо используйте age или GPG на определённые файлы или храните секреты полностью вне репо.

Работают ли эти инструменты на macOS? Все инструменты в этом списке поддерживают macOS. Nix Home Manager и chezmoi наиболее дружественны к macOS.

Как я обрабатываю конфиги для конкретной машины? Шаблоны (chezmoi), альтернативные файлы (yadm), ветки (yadm и Stow) или блоки, охраняемые по хосту, в Ansible. Паттерн шаблонов масштабируется лучше всего, когда машин больше двух.

Должен ли я коммитить мой репо dotfiles публично? Только после аудита. Даже небольшой конфиг часто содержит email или рабочий alias. Приватный вариант безопаснее.

Как я синхронизирую файлы, которые постоянно меняются, например закладки браузера или историю shell? Syncthing, не инструмент dotfiles. Версионируемые dotfiles не любят почасовую пересборку.

Стоит ли учить Nix только ради dotfiles? Только для dotfiles — нет. Для любого, кто строит homelabs, dev containers и воспроизводимые сборки — да.