Saya menggunakan Gentoo Linux dan memiliki konfigurasi yang agak rumit. Pertanyaan saya apakah sebaiknya menggunakan git untuk versi yang mengontrol file konfigurasi saya?
Saya memiliki beberapa repositori git di rumah saya, dugaan saya jika saya meletakkan / home / ** ke .gitignore saya, mereka tidak akan menimbulkan masalah.
Pembaruan klarifikasi:
Apakah ini metode yang bijaksana untuk menggunakan git untuk mengontrol versi file konfigurasi tingkat sistem saya di direktori root "/"?
Jawaban:
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:
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
:Abaikan file tertentu
Edit
/etc/.gitignore
untuk menentukan file apa saja yang tidak boleh dilacak.Lari pertama
Setelah mengkonfigurasi, jalankan perintah berikut:
Jika direktori Anda saat ini adalah
etc
, Anda dapat menjalankangit
perintah biasa , misalnya,sumber
etckeeper
selama komit harian sebenarnya akan memeriksa dulu apakah/etc
"tidak bersih", yaitu, ia memiliki file yang tidak dikomit. Jika tidak, itu tidak akan dilakukan. Jadi, jika log komit Anda penuh dengan komitmen harian, kemungkinan ada file yang berubah setiap hari yang belum Anda tambahkan ke.*ignore
file :-)bzr init
--__-- ... Saya sarankan selalu berjalanetckeeper uninit -f
setelah instalasi.Saya menggunakan git untuk melacak area spesifik dari direktori home saya. Secara pribadi, saya tidak akan menempuh jalur melacak direktori root, tetapi saya harus mengatakan bahwa saya mengagumi ambisi Anda. :)
Mungkin kumpulan pengalaman ini bisa memberi Anda ide yang lebih baik tentang apa yang mungkin Anda hadapi:
efek menginisialisasi repositori git pada direktori root linux 3 :)
Permintaan maaf atas "jawaban", alih-alih hanya melemparkan tautan dalam komentar; Namun, tidak cukup perwakilan, tetapi ingin berpadu.
Edit
Wow! Jawaban yang sangat bagus dari @AnthonyGeoghegan. Saya percaya ini bukan perjuangan seperti yang saya bayangkan sebelumnya.
sumber
Saya juga menggunakan
git
untuk menyimpan dan memeliharadotfiles
, tetapi dalamgit bare repository
. Panduan terperinci dapat ditemukan sini . Saya menggunakan dua repositori, satu untuk pengguna saya bernama dotfilesmyconf
dan satu untuk root dotfiles bernamarootconf
.Selain itu Anda dapat menggunakan kedua konfigurasi di banyak mesin, Distribusi Linux atau Mesin Virtual yang berbeda: Cukup buat cabang baru untuk konfigurasi yang berbeda. Maka Anda menghindari mencampur kode dalam file yang sama (misalnya
.bash_alias
): Tidak mengganggu jika ingin memeriksa mesin saat ini lagi; tidak ada tautan yang dibutuhkan!sumber