Краткий ответ на ваш вопрос: да .
Я без колебаний рекомендую Git (или любое другое программное обеспечение для контроля версий) отслеживать файлы конфигурации. С тех пор я стал более продуктивным (в частности, для настройки новых установок) и больше доверял своим файлам конфигурации. С контролем версий у меня есть запись о том, какие изменения были внесены, и сообщение о фиксации предоставляет причину, по которой было сделано изменение. Если изменение имеет непреднамеренные побочные эффекты, я могу легко просмотреть журнал / историю, чтобы увидеть, какие изменения вызвали эффекты.
Лично я бы с осторожностью отслеживал все файлы в /
корневом каталоге. Список игнорируемых путей может стать большим и громоздким. Я предпочитаю хранить каждый логический набор файлов в своем собственном хранилище.
Я вручную использую Git для отслеживания моих личных файлов конфигурации / запуска, например, конфигурации Vim, функций Bash, псевдонимов и т. Д. - аналогично подходу, описанному в разделе Как отслеживать $ HOME с помощью git . Я храню каждый набор файлов в своем собственном хранилище и использую символические ссылки на домашний каталог.
Для файлов конфигурации системы я использую Git с Etckeeper для отслеживания файлов в моем /etc
каталоге.
Недостатки
Одна проблема, которую следует опасаться, - это то, что отслеживаемые файлы содержат жесткие ссылки . Когда Git используется для извлечения файлов или иного изменения рабочего дерева, он отменяет связь с файлами и затем воссоздает их . Смотрите Git, Dotfiles и Hardlinks для более полного объяснения.
Etckeeper
Etckeeper может использоваться для ведения полной истории изменений, внесенных в / etc. Он отслеживает метаданные файлов, которые системы контроля версий обычно не поддерживают, но это важно /etc
, например, права доступа /etc/shadow
.
Он подключается к менеджерам пакетов, таким как apt и yum и (в конфигурации по умолчанию), запускает до и после установки, поэтому все изменения /etc
отслеживаются.
Если пакет установлен или удален, все незафиксированные изменения в / etc будут зафиксированы перед операцией пакета, так что есть две фиксации:
- «Сохранение незафиксированных изменений в / etc до запуска yum»
- «Внесение изменений в / etc после запуска yum»
Я использовал его с дистрибутивами на основе Debian и Red Hat и знаю, что он поддерживает управление пакетами Arch. Я не могу сказать, сколько автоматизации это добавит к системе Gentoo, но пакет для нее доступен .
Он также поддерживает передачу файлов конфигурации в удаленный репозиторий
(который, разумеется, должен быть закрытым).
конфигурация
После установки пакета вам может понадобиться настроить его ( /etc/etckeeper/etckeeper.conf
), например, в системах Ubuntu система управления версиями по умолчанию изменена с Git на Bazaar. Вы также можете отключить ежедневные автоматические коммиты .
Ежедневные автокоммиты
Изменения могут быть автоматически зафиксированы ежедневным заданием cron . Это может раздражать, так как хранилище может быть загромождено несколькими сообщениями автоматической фиксации.
Я раскомментирую соответствующую строку в /etc/etckeeper/etckeeper.conf
:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
Игнорировать определенные файлы
Изменить, /etc/.gitignore
чтобы указать любые файлы, которые не должны быть отслежены.
Первый забег
После настройки выполните следующие команды:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
Если ваш текущий каталог etc
, вы можете запускать обычные git
команды, например,
sudo git status
sudo git log