Tiêu chuẩn phân cấp hệ thống tập tin - Đặt các chức năng có nguồn gốc ở đâu?


9

Tôi có một vài tập lệnh bash đang chạy kiểm tra hệ thống. Các tập lệnh này tùy chọn cấu hình nguồn từ một tập tin / etc / Healthchecks / config.

Cùng với tệp cấu hình, tôi có một tệp chức năng được chia sẻ. Các tập lệnh sẽ có thể nguồn tập tin đó và chạy các chức năng trong đó.

Dựa trên Tiêu chuẩn phân cấp hệ thống tập tin, tôi nên đặt tệp chức năng chia sẻ ở đâu? Nó không phải là một cấu hình, vì vậy có vẻ như nó không thuộc / etc, nhưng nó cũng không được thực thi nên / usr / bin có vẻ không chính xác. Có lẽ / usr / lib?

Câu trả lời:


7

Bạn nên đặt các healthcheckstệp thực thi của mình vào / usr / local / bin hoặc trong / opt / bin. Nếu bạn thấy thư mục / opt của mình trống, có nghĩa là bản phân phối linux của bạn không sử dụng nó. Vì vậy, nơi thích hợp sẽ là / usr / local.

/ usr / local và / opt là nơi mỗi gói / chương trình "thủ công" phải được đặt. / usr dành cho các gói được quản lý bởi các nhà quản lý gói (ví dụ: dpkg). / opt là "nơi tiêu chuẩn" cho các gói thủ công theo FHS, nhưng thay vào đó các bản phân phối debian sử dụng / usr / local.

Đối với các tệp cấu hình, chúng phải được đặt trên / usr / local / etc, vì / etc dành cho các tệp cấu hình của các gói tự động và các chương trình hệ thống khác.

Vị trí chính xác cho các chức năng được chia sẻ của bạn là / usr / local / share (/ usr / share dành cho các tệp được chia sẻ của các gói tự động). Mỗi tệp được thiết kế ở chế độ chỉ đọc và độc lập với kiến ​​trúc thuộc về / usr / share hoặc / usr / local / share (nếu chúng được sở hữu bởi các gói "tự động" hoặc "thủ công").

/ usr / lib dành cho các thư viện nhị phân động và tĩnh (.so hoặc .a), và không dành cho các thư viện / hàm "diễn giải".

Thông thường, thông dịch viên có các thư mục con khác nhau trong / etc / share / cho mỗi phiên bản và bên trong mỗi thư mục phiên bản, các thư mục khác nhau cho tập lệnh, ngôn ngữ, kiểm tra, mẫu, v.v.

Nếu một ngày nào đó bạn tạo một kho lưu trữ chính thức cho gói của mình healthchecks, bạn có thể di chuyển nội dung / usr / local / Healthchecks của bạn sang / usr / Healthchecks và / etc / Healthchecks.


2
Tôi đã tiếp tục và xóa câu trả lời của mình vì 1) bạn bao quát chủ đề đủ tốt và 2) libexecvề mặt kỹ thuật chưa phải là một phần của FHS. Nó có mặt trong dự thảo 3.0Tổng quan về FHS của Redhat , nhưng về mặt kỹ thuật chưa phải là một phần của FHS. (sử dụng nó nếu bạn muốn, về cơ bản)
Andrew B

1

Tôi thường cố gắng giữ những thứ cụ thể của trang web bên ngoài các khu vực hệ thống dành riêng này. Bạn có thể cân nhắc sử dụng hệ thống phân cấp thư mục cấp cao nhất của riêng mình vì khi sử dụng các khu vực hệ thống, các tệp trang web đặc biệt có thể dễ dàng bị mất hoặc bị lãng quên trong quá trình phát triển hệ thống. Một khả năng khác có thể là / usr / local / etc .....

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.