Jawaban singkat untuk pertanyaan Anda adalah Ya .
Saya tidak akan ragu untuk merekomendasikan Git (atau perangkat lunak kontrol versi lainnya) untuk melacak file konfigurasi. Sejak melakukannya, saya menjadi lebih produktif (terutama untuk mengkonfigurasi instalasi baru) dan lebih percaya diri pada file konfigurasi saya. Dengan kontrol versi, saya memiliki catatan tentang perubahan apa yang dibuat dan pesan komit memberikan alasan mengapa perubahan itu dilakukan. Jika perubahan memiliki efek samping yang tidak diinginkan, saya dapat dengan mudah meninjau log / riwayat untuk melihat perubahan apa yang menyebabkan efek.
Secara pribadi, saya akan berhati-hati melacak semua file di bawah /
direktori root. Daftar jalan untuk diabaikan bisa menjadi besar dan berat. Saya lebih suka menyimpan setiap set file logis dalam repositori mereka sendiri.
Saya secara manual menggunakan Git untuk melacak konfigurasi pribadi saya / file start-up, misalnya, konfigurasi Vim, fungsi Bash, alias, dll. - mirip dengan pendekatan yang tercantum dalam Cara melacak $ HOME dengan git . Saya menyimpan setiap set file dalam repositori mereka sendiri dan menggunakan tautan simbolik ke direktori home.
Untuk file konfigurasi sistem , saya menggunakan Git dengan Etckeeper untuk melacak file dalam /etc
direktori saya .
Kekurangannya
Satu masalah yang harus diwaspadai adalah jika file yang dilacak menyertakan tautan keras . Ketika Git digunakan untuk memeriksa file atau memodifikasi pohon yang berfungsi, itu memutuskan tautan file dan kemudian membuatnya kembali . Lihat Git, Dotfiles, dan Hardlinks untuk penjelasan lebih lengkap.
Penjaga Etc
Etckeeper dapat digunakan untuk menyimpan riwayat penuh perubahan yang dilakukan pada / etc. Ini melacak metadata file yang sistem kontrol revisi biasanya tidak mendukung, tetapi itu penting untuk /etc
, seperti izin /etc/shadow
.
Itu kait ke manajer paket seperti apt dan yum dan (dalam konfigurasi default-nya), berjalan sebelum dan sesudah instalasi sehingga semua perubahan untuk /etc
dilacak.
Jika paket diinstal atau dihapus, semua perubahan yang tidak dikomit di / etc akan dilakukan sebelum operasi paket sehingga ada dua komitmen:
- “Menyimpan perubahan yang tidak dikomit di / dll sebelum menjalankan yum”
- “Melakukan perubahan pada / etc setelah yum run”
Saya telah menggunakannya dengan distribusi berbasis Debian dan Red Hat dan saya tahu itu mendukung manajemen paket Arch. Saya tidak bisa mengatakan berapa banyak otomasi yang akan ditambahkan ke sistem Gentoo tetapi sebuah paket tersedia untuk itu .
Ini juga mendukung mendorong file konfigurasi ke repositori jarak jauh
(yang tentunya, harus pribadi).
Konfigurasi
Setelah menginstal paket Anda mungkin perlu mengkonfigurasinya ( /etc/etckeeper/etckeeper.conf
), misalnya, pada sistem Ubuntu sistem kontrol versi default diubah dari Git ke Bazaar. Anda mungkin juga ingin menonaktifkan komitmen otomatis harian .
Autocommits harian
Perubahan dapat dilakukan secara otomatis oleh pekerjaan cron harian . Ini dapat mengganggu karena repositori dapat menjadi berantakan dengan beberapa pesan komit otomatis.
Saya batalkan komentar pada baris yang sesuai di /etc/etckeeper/etckeeper.conf
:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
Abaikan file tertentu
Edit /etc/.gitignore
untuk menentukan file apa saja yang tidak boleh dilacak.
Lari pertama
Setelah mengkonfigurasi, jalankan perintah berikut:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
Jika direktori Anda saat ini adalah etc
, Anda dapat menjalankan git
perintah biasa , misalnya,
sudo git status
sudo git log