Sorunuzun kısa cevabı Evet .
Yapılandırma dosyalarını takip etmek için Git'i (veya başka bir sürüm kontrol yazılımını) tavsiye etmekten çekinmeyin. Bunu yaptığımdan beri daha üretken oldum (özellikle yeni kurulumları yapılandırmak için) ve yapılandırma dosyalarına daha fazla güveniyorum. Sürüm kontrolü ile, hangi değişikliklerin yapıldığına dair bir kaydım var ve taahhüt mesajı değişikliğin nedenini ortaya koyuyor. Bir değişikliğin istenmeyen yan etkileri varsa, hangi değişikliğin etkilere neden olduğunu görmek için günlük / geçmişi kolayca inceleyebilirim.
Şahsen, /
kök dizinin altındaki tüm dosyaları izlemeye karşı dikkatli olurum . Yoksayılacak yolların listesi büyük ve hantal olabilir. Her mantıksal dosya kümesini kendi havuzunda tutmayı tercih ederim.
Git'i, $ HOME ile git nasıl takip edilir? Bölümünde listelenen yaklaşıma benzer şekilde, kişisel yapılandırma / başlatma dosyalarımı, örneğin Vim yapılandırması, Bash işlevleri, diğer adları vb . Her dosya kümesini kendi havuzunda saklıyorum ve ana dizine sembolik bağlantılar kullanıyorum.
İçin sistem yapılandırma dosyaları, beraber Git kullanmak Etckeeper benim dosyaların takip etmek için /etc
dizine.
Dezavantajları
Dikkat edilmesi gereken bir konu, izlenen dosyaların sabit bağlantılar içermesidir . Git, dosyaları teslim almak veya çalışma ağacını başka bir şekilde değiştirmek için kullanıldığında, dosyaların bağlantılarını kaldırır ve sonra bunları yeniden oluşturur . Daha kapsamlı bir açıklama için Git, Dotfiles ve Hardlinks'e bakın.
Etckeeper
Etckeeper, / etc üzerinde yapılan değişikliklerin tam geçmişini tutmak için kullanılabilir. Revizyon kontrol sistemlerinin normalde desteklemediği dosya meta verilerini izler, ancak bunun /etc
izinleri gibi önemlidir /etc/shadow
.
Apt ve yum gibi paket yöneticilerine bağlanır ve (varsayılan yapılandırmasında), kurulum öncesi ve sonrası çalışır, böylece tüm değişiklikler /etc
takip edilir.
Bir paket kurulur veya kaldırılırsa, / etc dosyasındaki tüm taahhüt edilmemiş değişiklikler paket işleminden önce gerçekleştirilecek ve böylece iki işlem gerçekleştirilecektir:
- “Yum çalıştırılmadan önce / etc'de kaydedilmemiş değişiklikleri kaydetme”
- “/ Run değişiklikleri yum çalıştırdıktan sonra taahhüt”
Debian ve Red Hat tabanlı dağıtımlarla kullandım ve Arch paket yönetimini desteklediğini biliyorum. Bir Gentoo sistemine ne kadar otomasyon katacağını söyleyemem ama bunun için bir paket var .
Ayrıca, yapılandırma dosyalarını uzak bir depoya aktarmayı da destekler
(elbette özel olmalıdır).
Yapılandırma
Paketi kurduktan sonra yapılandırmanız gerekebilir ( /etc/etckeeper/etckeeper.conf
), örneğin Ubuntu sistemlerinde varsayılan sürüm kontrol sistemi Git'ten Çarşı'ya değiştirilir. Günlük otomatik taahhütleri de devre dışı bırakmak isteyebilirsiniz .
Günlük otomatik taahhütler
Değişiklikler günlük cron işi tarafından otomatik olarak yapılabilir . Depo, birden fazla otomatikleştirilmiş taahhüt mesajı ile darmadağın olabileceğinden bu can sıkıcı olabilir.
Ben uygun satırında uncomment /etc/etckeeper/etckeeper.conf
:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
Belirli dosyaları yoksay
İzlenmemesi /etc/.gitignore
gereken dosyaları belirtmek için düzenleyin.
İlk çalıştırma
Yapılandırdıktan sonra aşağıdaki komutları çalıştırın:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
Geçerli dizininiz etc
normal git
komutlar çalıştırabilir , örn.
sudo git status
sudo git log