kontrol versi untuk / etc di bawah * BSD


14

Solusi turnkey apa yang ada untuk diletakkan di /etcbawah kontrol versi, di bawah berbagai kesatuan? Turnkey tidak harus berarti bagian dari instalasi dasar, tetapi fitur berikut akan menyenangkan:

  • menghubungkan ke perintah VCS untuk mengelola metadata (kepemilikan, izin);
  • integrasi dengan manajer paket (berjalan secara otomatis sebelum dan sesudah instalasi, menangani pemutakhiran secara cerdas);
  • memperlakukan versi file hulu sebagai cabang;
  • daftar abaikan yang diisi sebelumnya;
  • dukungan untuk beberapa VCS yang mendasarinya (terutama yang didistribusikan).

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

Jawaban:


4

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

Saya cenderung versi / etc via saya git, terutama karena dengan menggunakan cabang yang berbeda saya dapat menjaga / etc saya sedekat mungkin melalui distribusi yang berbeda sebanyak mungkin sambil menyimpan barang sebanyak mungkin di satu tempat sebanyak mungkin (untuk beberapa area yang jelas gagal, konfigurasi apache misalnya berbeda antar distribusi yang berbeda). Ini berfungsi seperti ini:

Saya memiliki masterrepo dengan file konfigurasi default saya. Sekarang saya berhubungan dengan distro baru jadi saya membuat cabang baru berdasarkan mastercabang saya berdasarkan nama distribusi (dalam contoh ini debian). Debian menyimpan beberapa file konfigurasi di lokasi yang berbeda dari saya masterjadi saya melakukan git mv file new_loc. Dan semuanya baik-baik saja. Saya beralih kembali kemaster dan mengubah file itu karena saya menambahkan beberapa perintah konfigurasi khusus, ketika saya bergabung masterke debiancabang saya file yang dipindahkan diubah, jadi saya pada dasarnya hanya dapat mengubah sebagian besar hal dalam mastercabang saya dan hanya harus menggabungkan perubahan dalam "distribusi" saya. cabang (biasanya mereka cenderung lebih merupakan campuran dari cabang-cabang distribusi dan tujuan, server debian memiliki beberapa perbedaan dengan workstation debian jelas tetapi fitur-fiturnya masih berfungsi).

Jadi pada dasarnya saya memiliki "konfigurasi generik" di masterdan (untuk mengatakannya dalam istilah pemrograman berorientasi objek) mewarisi mereka ke cabang saya (yang juga dapat saling mewarisi).

Selain itu, git mekanisme untuk melakukan "cherry-pick" berkomitmen (dalam hal ini perubahan ke / etc /) telah sangat membantu saya pada saat-saat di mana saya hanya membutuhkan bagian-bagian dari konfigurasi tertentu.

Sekarang untuk beberapa ide Anda:

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

Saya menyukai pembaruan cfg di gentoo lebih baik daripada dispatch-conf, sayangnya yang pertama tidak dikelola. Sejak sekitar satu tahun sebelum saya pergi, dan itu adalah kekacauan spaghetti perl, imo.
xenoterracide

3

Saya telah menggunakan fossilini dengan beberapa keberhasilan. Lihat posting saya tentang Fosil untuk info lebih lanjut. Saya juga menggunakan alat yang disebut etcupdatelebih untuk bergerak di antara peningkatan daripada melacak perubahan. Saya percaya itu dimaksudkan untuk menjadi alat pendamping freebsd-updatepada suatu saat. Saya tidak yakin dengan statusnya saat ini tetapi berfungsi pada saya RELEASE-8.* sistem .

http://lists.freebsd.org/pipermail/freebsd-current/2010-June/017927.html http://people.freebsd.org/~jhb/etcupdate/


-1

Ada alat yang disebut etckeeper Saya tidak tahu seberapa bagus itu.

etckeeper adalah kumpulan alat untuk membiarkan / etc disimpan dalam repositori git, mercurial, darcs, atau bzr. Itu terhubung ke apt (dan manajer paket lainnya termasuk yum dan pacman-g2) untuk secara otomatis melakukan perubahan yang dibuat ke / etc selama peningkatan paket. Ini melacak metadata file yang sistem kontrol revisi biasanya tidak mendukung, tetapi itu penting untuk / etc, seperti izin / etc / shadow. Ini cukup modular dan dapat dikonfigurasi, sementara juga mudah digunakan jika Anda memahami dasar-dasar bekerja dengan kontrol revisi.

Saya juga tidak tahu apakah ini dapat berfungsi pada * BSD Saya kira itu bisa, tetapi tidak didukung dengan port di luar kotak.


1
Gilles sudah menggunakan dllkeeper.
tante

@ante oh saya melewatkannya
xenoterracide
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.