Krátká odpověď na vaši otázku je Ano .
Pro sledování konfiguračních souborů bych neváhal doporučit Git (nebo jakýkoli jiný software pro správu verzí). Od té doby jsem produktivnější (zejména při konfiguraci nových instalací) a mám větší důvěru ve své konfigurační soubory. Díky správě verzí mám záznam o tom, co byly provedeny změny a zpráva o odevzdání poskytuje důvod proč změna byla provedena. Pokud má změna nezamýšlené vedlejší účinky, mohu si snadno prohlédnout protokol/historii a zjistit, jaká změna tyto účinky způsobila.
Osobně bych byl opatrný se sledováním všech souborů pod /
kořenový adresář. Seznam cest, které je třeba ignorovat, by mohl být rozsáhlý a nepraktický. Upřednostňuji ponechat každou logickou sadu souborů v jejich vlastním úložišti.
Ručně používám Git ke sledování svých osobních konfigurační / spouštěcí soubory, např. konfigurace Vim, funkce Bash, aliasy atd. – podobný přístupu uvedenému v části Jak sledovat $HOME pomocí git. Uchovávám každou sadu souborů v jejich vlastním úložišti a používám symbolické odkazy na domovský adresář.
Pro systém konfigurační soubory, používám Git s Etckeeper ke sledování souborů v mém /etc
adresář.
Nevýhody
Jeden problém, na který je třeba si dát pozor, je, pokud sledované soubory obsahují pevné odkazy . Když se Git používá k vyzvednutí souborů nebo jiné úpravě pracovního stromu, odpojí soubory a poté je znovu vytvoří. Podrobnější vysvětlení najdete v Git, Dotfiles a Hardlinks.
Etckeeper
Etckeeper lze použít k uchování úplné historie změn provedených v /etc. Sleduje metadata souborů, která systémy řízení revizí normálně nepodporují, ale to je důležité pro /etc
, jako jsou oprávnění /etc/shadow
.
Připojuje se ke správcům balíčků, jako jsou apt a yum, a (ve výchozí konfiguraci) spouští před a po instalaci, takže všechny změny jsou /etc
jsou sledováni.
Pokud je balíček nainstalován nebo odstraněn, všechny nepotvrzené změny v /etc budou potvrzeny před operací balíčku, takže existují dvě potvrzení:
- “uložení nepotvrzených změn do /etc před spuštěním yum“
- „potvrzení změn v /etc po spuštění yum“
Použil jsem to s distribucemi založenými na Debianu a Red Hatu a vím, že podporuje správu balíčků Arch. Nemohu říci, kolik automatizace by to přidalo do systému Gentoo, ale je k dispozici balíček.
Podporuje také odesílání konfiguračních souborů do vzdáleného úložiště (který by měl být samozřejmě soukromý).
Konfigurace
Po instalaci balíčku jej možná budete muset nakonfigurovat (/etc/etckeeper/etckeeper.conf
), např. na systémech Ubuntu se výchozí systém správy verzí změní z Git na Bazaar. Můžete také deaktivovat denní automatické potvrzení .
Denní automatické potvrzení
Změny mohou být automaticky provedeny denní úlohou cron . To může být nepříjemné, protože úložiště může být přeplněné více automatickými zprávami o odevzdání.
Odkomentuji příslušný řádek v /etc/etckeeper/etckeeper.conf
:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
Ignorujte určité soubory
Upravit /etc/.gitignore
specifikovat všechny soubory, které nemají být sledovány.
První spuštění
Po konfiguraci spusťte následující příkazy:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
Pokud je váš aktuální adresář etc
, můžete spustit běžný git
příkazy, např.,
sudo git status
sudo git log
Používám git ke sledování konkrétních oblastí mého domovského adresáře. Osobně bych nešel cestou sledování kořenového adresáře, ale musím říct, že obdivuji vaše ambice. :)
Možná by vám tato sbírka zkušeností mohla poskytnout lepší představu o tom, do čeho se můžete dostat:
účinky inicializace úložiště git na kořenový adresář linuxu 3 :)
Omlouvám se za "odpověď", místo pouhého vhození odkazu do komentáře; nicméně, ne dost rep, ale přál si zazvonit.
Upravit
Páni! Velmi pěkná odpověď od @AnthonyGeoghegan. Věřím, že to není takový boj, jak jsem si to původně představoval.