Trong Gentoo, công cụ quản lý các thay đổi do gói gây ra thành / etc (được gọi là Clark-conf) hỗ trợ rcs để theo dõi các thay đổi nhưng điều đó không thực sự mạnh mẽ.
Tôi có xu hướng phiên bản / etc của mình thông qua git
, đặc biệt là bằng cách sử dụng các nhánh khác nhau, tôi có thể giữ / etc của mình giống nhau nhất có thể trên các bản phân phối khác nhau càng tốt trong khi giữ càng nhiều thứ ở một nơi càng tốt (đối với một số khu vực rõ ràng là không thành công, cấu hình apache ví dụ là thực sự khác nhau trên các bản phân phối khác nhau). Nó hoạt động như thế này:
Tôi có master
repo với các tập tin cấu hình mặc định của tôi. Bây giờ tôi liên lạc với một bản phân phối mới vì vậy tôi tạo một chi nhánh mới dựa trên master
chi nhánh của mình dựa trên tên của bản phân phối (trong ví dụ này là debian). Debian giữ một số tập tin cấu hình ở một vị trí khác với tôi master
vì vậy tôi làm một git mv file new_loc
. Và mọi thứ đều ổn. Tôi chuyển trở lại master
và thay đổi tệp đó vì tôi đã thêm một số chỉ thị cấu hình cụ thể, khi tôi hợp nhất master
vào debian
nhánh của mình , tệp đã di chuyển bị thay đổi, vì vậy về cơ bản tôi có thể thay đổi hầu hết mọi thứ trong master
nhánh của mình và chỉ cần hợp nhất các thay đổi trong "phân phối" của tôi các nhánh (thường là chúng có xu hướng kết hợp nhiều nhánh phân phối và mục đích hơn, một máy chủ debian có một số khác biệt so với máy trạm debian rõ ràng nhưng các tính năng vẫn hoạt động).
Vì vậy, về cơ bản tôi có một "cấu hình chung" trong master
và (để nói nó theo thuật ngữ lập trình hướng đối tượng) kế thừa chúng vào các nhánh của tôi (những người cũng có thể thừa hưởng lẫn nhau).
Ngoài ra, git
các cơ chế để "chọn cherry" (trong trường hợp này thay đổi thành / etc /) khá hữu ích với tôi vào những lúc tôi chỉ cần các phần của một cấu hình nhất định.
Bây giờ đến một số ý tưởng của bạn:
- Nếu tôi cần tích hợp trình quản lý gói nhiều hơn, có lẽ tôi sẽ sử dụng các tập lệnh bao bọc cho việc này (tại thời điểm tôi không có).
- coi các phiên bản ngược dòng là một nhánh sẽ hoạt động tốt
git
, đó chỉ là một nhánh khác mà đôi khi bạn hợp nhất (một phần) thànhmaster
- Danh sách bỏ qua trong git là tệp .gitignore trong repo của bạn để nó được bảo hiểm.