GNU/Linux >> Belajar Linux >  >> Linux

Kontrol Versi Untuk /etc Di bawah *bsd?

Solusi turnkey apa yang ada untuk menempatkan /etc di bawah kontrol versi, di bawah berbagai kesatuan? Turnkey tidak selalu berarti bagian dari instalasi dasar, tetapi fitur berikut akan bagus:

  • menghubungkan ke perintah VCS untuk mengelola metadata (kepemilikan, izin);
  • integrasi dengan pengelola paket (berjalan secara otomatis sebelum dan sesudah penginstalan, menangani peningkatan dengan cerdas);
  • perlakukan versi file upstream sebagai cabang;
  • daftar abaikan yang sudah diisi sebelumnya;
  • dukungan untuk beberapa VCS dasar (terutama yang terdistribusi).

Saya menggunakan etckeeper di bawah Debian dan turunannya. Ini memiliki semua fitur di atas kecuali bahwa itu tidak melacak versi upstream. Saya ingin belajar tentang alternatif, khususnya di *BSD.

Jawaban yang Diterima:

Di bawah Gentoo, alat untuk mengelola perubahan yang dipicu oleh paket ke /etc (disebut dispatch-conf ) mendukung rcs untuk melacak perubahan tetapi itu tidak terlalu kuat.

Saya cenderung membuat versi /etc saya melalui git , terutama karena dengan menggunakan cabang yang berbeda saya dapat menyimpan /etc . saya semirip mungkin melalui distribusi yang berbeda sambil menyimpan sebanyak mungkin barang di satu tempat (untuk beberapa area yang jelas-jelas gagal, konfigurasi Apache misalnya sangat berbeda di seluruh distribusi yang berbeda). Ini bekerja seperti ini:

  • Saya memiliki master repo dengan file konfigurasi default saya.

  • Sekarang saya berhubungan dengan distro baru jadi saya membuat cabang baru berdasarkan master saya cabang berdasarkan nama distribusi (dalam contoh ini debian).

  • Debian menyimpan beberapa file konfigurasi di lokasi yang berbeda dari master saya jadi saya melakukan git mv file new_loc . Dan semuanya baik-baik saja.

  • Saya beralih kembali ke master dan ubah file itu karena saya menambahkan beberapa arahan konfigurasi khusus.

  • Saat saya menggabungkan master ke debian saya cabang file yang dipindahkan diubah, jadi pada dasarnya saya dapat mengubah sebagian besar hal dalam master saya cabang dan hanya perlu menggabungkan perubahan di cabang "distribusi" saya (biasanya mereka cenderung lebih merupakan campuran dari cabang distribusi dan tujuan, server debian jelas memiliki beberapa perbedaan dengan workstation debian tetapi fiturnya masih berfungsi).

Jadi pada dasarnya saya memiliki "konfigurasi umum" di master dan (untuk mengatakannya dalam istilah pemrograman berorientasi objek) mewarisinya ke cabang saya (yang juga dapat saling mewarisi).

Selain itu, git mekanisme untuk komit "cherry-pick" (dalam hal ini berubah menjadi /etc/ ) cukup membantu saya saat saya hanya membutuhkan bagian dari konfigurasi tertentu.

Terkait:Jalankan perintah unix tepat pada interval yang sangat singkat TANPA mengumpulkan jeda waktu dari waktu ke waktu?

Sekarang untuk beberapa ide Anda:

  • Jika saya membutuhkan lebih banyak integrasi pengelola paket, saya mungkin akan menggunakan skrip pembungkus untuk ini (saat ini saya tidak membutuhkannya).
  • memperlakukan versi upstream sebagai cabang akan bekerja dengan baik dengan git , itu hanya cabang lain yang terkadang Anda gabungkan (sebagian) menjadi master
  • Daftar abaikan di git adalah file .gitignore di repo Anda sehingga tercakup.

Linux
  1. Bagaimana cara mengatur variabel lingkungan untuk semua orang di bawah sistem linux saya?

  2. /etc/passwd menampilkan pengguna dalam grup, tetapi /etc/group tidak

  3. Template untuk skrip startup?

  1. Bagaimana /etc/motd Diperbarui?

  2. CentOS / RHEL :Cara Memulihkan dari file /etc/passwd yang dihapus

  3. Haruskah situs web berada di /var/ atau /usr/ sesuai dengan penggunaan yang disarankan?

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Perbedaan Antara ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.gnomerc, /etc/bash_bashrc, /etc/screenrc …?

  3. Bagaimana cara memonitor file /etc/shadow dan /etc/passwd untuk perubahan dengan Auditd?