파일 시스템 계층 표준-소스 가능한 함수를 어디에 둘 것인가?


9

시스템 검사를 실행하는 몇 가지 bash 스크립트가 있습니다. 이 스크립트는 / etc / healthchecks / config 파일에서 구성 옵션을 제공합니다.

구성 파일과 함께 공유 기능 파일이 있습니다. 스크립트는 해당 파일을 소싱하고 그 기능을 실행할 수 있어야합니다.

파일 시스템 계층 표준에 따라 공유 함수 파일을 어디에 두어야합니까? 구성이 아니므로 / etc에 속하는 것처럼 보이지는 않지만 실행되지 않으므로 / usr / bin이 올바르지 않은 것 같습니다. 아마도 / usr / lib?

답변:


7

healthchecks실행 파일을 / usr / local / bin 또는 / opt / bin에 두어야합니다 . / opt 폴더가 비어 있으면 Linux 배포에서 사용하지 않는 것입니다. 따라서 적절한 장소는 / usr / local입니다.

/ usr / local 및 / opt는 모든 "수동"패키지 / 프로그램을 배치해야하는 곳입니다. / usr은 패키지 관리자가 관리하는 패키지 (예 : dpkg) 용입니다. / opt는 FHS에 따른 수동 패키지의 "표준 위치"이지만 데비안 배포판에서는 / usr / local을 대신 사용합니다.

/ etc는 자동 패키지 및 기타 시스템 프로그램의 구성 파일 용이므로 구성 파일의 경우 / usr / local / etc에 있어야합니다.

공유 기능의 올바른 위치는 / usr / local / share입니다 (/ usr / share는 자동 패키지의 공유 파일을위한 것입니다). 읽기 전용으로 구성되어 독립적으로 설계되는 모든 파일은 / usr / share 또는 / usr / local / share ( "자동"또는 "수동"패키지가 소유 한 경우)에 속합니다.

/ usr / lib는 동적 및 정적 이진 라이브러리 (.so 또는 .a) 용이며 "해석 된"라이브러리 / 함수 용이 아닙니다.

일반적으로 인터프리터는 각 버전마다 / etc / share /에 다른 하위 폴더가 있으며 각 버전 폴더에는 스크립트, 로케일, 테스트, 샘플 등을위한 다른 폴더가 있습니다.

언젠가 패키지의 공식 저장소를 작성하는 경우 healthchecks/ usr / local / healthchecks 컨텐츠를 / usr / healthchecks 및 / etc / healthchecks로 마이그레이션 할 수 있습니다.


2
나는 1) 당신의 주제를 충분히 다루고 있으며 2) libexec기술적으로 아직 FHS의 일부가 아니기 때문에 대답을 삭제했습니다 . 이 문서는 3.0 초안FHS에 대한 Redhat의 개요에 있지만 아직 기술적으로는 FHS의 일부가 아닙니다. (기본적으로 원하는 경우 사용)
Andrew B

1

일반적으로 이러한 예약 된 시스템 영역 외부에 사이트 관련 사항을 유지하려고합니다. 시스템 영역을 사용할 때 시스템 진화 중에 특수 사이트 파일이 쉽게 손실되거나 잊혀 질 수 있으므로 고유 한 최상위 디렉토리 계층 구조를 사용하는 것이 좋습니다. 또 다른 가능성은 / usr / local / etc ..... 일 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.