Làm cách nào để phân phối khác nhau sửa đổi vị trí của tệp cấu hình cho các chương trình?


14

Rất nhiều chương trình Linux nói rằng vị trí (các) tệp cấu hình phụ thuộc vào phân phối. Tôi đã tự hỏi làm thế nào các phân phối khác nhau làm điều này. Họ có thực sự sửa đổi mã nguồn? Có các tham số xây dựng đặt các vị trí này? Tôi đã tìm kiếm này nhưng không thể tìm thấy bất kỳ thông tin. Tôi biết nó ở ngoài đó, tôi dường như không thể tìm thấy nó. "Cách Linux" liên quan đến vấn đề này là gì?

Câu trả lời:


14

Nó phụ thuộc vào phân phối và nguồn gốc ('ngược dòng').

Với hầu hết các gói sử dụng autoconf- và automake, có thể chỉ định thư mục nơi các tệp cấu hình sẽ được tìm kiếm bằng cách sử dụng --sysconfdirtham số. Các hệ thống xây dựng khác (ví dụ, CMake) có các tùy chọn tương tự. Nếu gói nguồn sử dụng một trong những hệ thống xây dựng đó, thì trình đóng gói có thể dễ dàng chỉ định đúng các tham số và không yêu cầu phải có bản vá. Ngay cả khi họ không (ví dụ: vì nguồn ngược dòng sử dụng một số hệ thống xây dựng tại nhà), bạn vẫn có thể chỉ định một số cấu hình xây dựng để di chuyển các tệp cấu hình đến một vị trí cụ thể mà không phải vá nguồn ngược dòng.

Đó không phải là trường hợp, sau đó thường thì phân phối thực sự sẽ phải thêm các bản vá vào nguồn để làm cho nó di chuyển các tệp theo những gì họ cho là vị trí 'đúng'. Trong hầu hết các trường hợp, các nhà đóng gói phân phối sau đó sẽ viết một bản vá cho phép nguồn được cấu hình theo nghĩa trên, để họ có thể gửi bản vá đến các nhà bảo trì ngược dòng và không phải tiếp tục duy trì / cập nhật nó. Đây là trường hợp cho các vị trí tệp cấu hình, nhưng cũng cho các thứ khác, như bin/ sbintệp thực thi (cách giải thích lệnh của quản trị viên hệ thống khác nhau giữa các bản phân phối), vị trí để viết tài liệu, v.v.

Lưu ý bên lề: nếu bạn duy trì một số phần mềm miễn phí, vui lòng giúp người đóng gói dễ dàng nói chuyện với bạn. Nếu không, chúng tôi phải duy trì các bản vá như vậy không có lý do đặc biệt tốt ...


8

Họ có các bản vá được áp dụng cho cây mã nguồn thích ứng với các vị trí.

Có đủ "tiêu chuẩn" có sẵn mà mọi phân phối có thể đưa ra lựa chọn dựa trên sở thích (cá nhân) và / hoặc thực tiễn lịch sử. Ít khi có một giải pháp chỉ có lợi thế. Điều đó đôi khi gây phiền nhiễu / khó hiểu, nhưng tính nhất quán trong một bản phân phối là mục tiêu quan trọng nhất: nó dẫn đến ít lộn xộn hơn và dễ đoán hơn mọi thứ có thể dành cho chương trình Y nếu bạn đã biết những thứ tương tự (ví dụ: tệp thiết lập / cấu hình) dành cho chương trình X.

Ví dụ về ứng dụng vá

Gói python của tôi ruamel.yamlcó sẵn trong Debian Sid. Nó từng phụ thuộc vào ruamel.basevà người dùng đã cài đặt qua PyPI vẫn có thể có các phiên bản ruamel.basecài đặt cũ hơn, không tương thích . Sử dụng setup.py/ PyPI không phải là quản lý gói thực sự, vì vậy bạn không thể xóa gói được cài đặt trước đó thông qua các phụ thuộc. Tôi đã giải quyết vấn đề cho người dùng PyPI bằng cách tạo một phiên bản mới hơn ruamel.baseđể loại bỏ các vấn đề liên quan đến các ruamel.basegói cũ hơn và ruamel.yamlphụ thuộc vào phiên bản mới hơn đó.

Đối với Sid đây không phải là vấn đề: các phiên bản cũ hơn ruamel.basechưa được cài đặt (hoặc có thể được gỡ bỏ thông qua quản lý gói). Do đó, họ áp dụng một bản vá , mà bạn có thể tìm thấy trên ruamel.yamltrang thông tin cho Sid loại bỏ sự phụ thuộc ruamel.yamlvào ruamel.base.

Các bản phân phối khác có thiết lập tương tự. Ví dụ: nếu bạn xem các thông số kỹ thuật của việc tạo tệp RPM nguồn (ví dụ: RedHat / CentOS / SuSE), bạn sẽ thấy rằng bạn kết hợp tarball ban đầu của gói với một hoặc nhiều bản vá sẽ được áp dụng trước khi định cấu hình / biên dịch .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.