Linux 서버에는 몇 가지 구성 파일에 의존하는 많은 응용 프로그램이 있습니다. 이러한 응용 프로그램은 서로 관련되어 있지만 별개입니다. 가치있는 점을 위해 현재 각 응용 프로그램에는에 자체 디렉토리가 /opt
있습니다. 구성 파일은 일주일에 한 번 정도 변경 될 수 있지만 그 이상은 변경할 수 없습니다. 매주 일요일마다 FTP 사이트에서 최신 버전을 가져 오기 위해 cron 작업을 설정할 계획입니다.
이 구성 파일을 넣을 가장 좋은 위치는 아직 정확히 어디인지 완전히 이해하지 못했습니다. 몇 가지 가능성이 있습니다.
/etc/<appsuitename>/
구성 파일입니다. 구성이 들어갑니다./etc
/var/<appsuitename>/
파일은 합리적으로 자주 변경되지만 플랫폼 제공 업체만으로는 관리자 (me)가 직접 변경하지 않습니다./opt/<appsuitename>/lib
또는/opt/<appsuitename>/common
이것은 Windows 사고 방식에 가깝지만이 경우에는 의미가있을 수 있습니다./usr/lib
아마도 그렇지는 않지만 완전성을 위해 포함되었습니다.
아니면 내가 생각하지 못한 다른 것이 있습니까?
편집 : @ MichaelKjörling의 질문에 답변 :
- 단지 3 파티션이있다,
/home
,/
,와/swap
./opt
읽기 전용이 아닙니다. - 예, 버스에 치면 다른 사람이이 서버를 사용해야합니다.
- 이러한 응용 프로그램은 내부적으로 개발되었으므로 구성 위치를 결정하는 사람입니다. “메타 태그”가 아닌 경우 모범 사례 태그를 넣었을 수 있습니다.
- 궁극적으로, 내가 실제로 결정하는 것은 중요하지 않지만 조직 시스템은 OS의 내부 작업보다 시스템 관리자를위한 것임을 알고 있지만 이유가 있기 때문에 표준 규칙을 따르기를 좋아합니다.
답변
Filesystem Hierarchy Standard에는 아래에 설치 뭔가 그 설정 파일을 필요 /opt/xyz
로 가야 /etc/opt/xyz
(가) 어디 xyz
일치해야합니다. 즉, 호스트 별 구성 파일이 필요한 / opt 아래의 디렉토리에 설치된 응용 프로그램은 해당 구성 파일이 들어가는 / etc / opt 아래에 일치하는 디렉토리가 있어야합니다.
/ etc (호스트 특정 시스템 구성) 의 목적은 다음과 같이 간단하게 표시됩니다.
/etc
계층 구조는 구성 파일이 포함되어 있습니다. “구성 파일”은 프로그램 작동을 제어하는 데 사용되는 로컬 파일입니다. 정적이어야하며 실행 가능한 바이너리 일 수 없습니다.
물론, 완전히 정적 인 구성은 없지만이 맥락에서 “정적”인 것은 대략 “관리자의 개입없이 변경되지 않음”을 의미합니다.
/ etc / opt 는보다 구체적이며 그 목적은 다음과 같습니다.
애드온 응용 프로그램 소프트웨어 패키지의 호스트 별 구성 파일은 디렉토리 내에 설치해야합니다
/etc/opt/<subdir>
. 여기서 해당 패키지의 정적 데이터가 저장되는<subdir>
서브 트리의 이름입니다/opt
.
/ opt에 소프트웨어를 설치하기 때문에 구성 파일은 / etc / opt의 해당 하위 디렉토리 또는 계층 구조로 이동해야합니다.
물론, 시스템이 FHS를 준수 할 필요 는 없지만 다른 사람들이 원하는 파일을 찾을 수있는 위치를 알기 때문에 원하는 파일을 훨씬 쉽게 찾을 수 있습니다.
이것은 내부적으로 개발 된 소프트웨어에 관한 것이므로 위치를 구성 할 수있는 것이 좋습니다 . makefile에서 수행 된 매크로 선언을 통해서만 구성 할 수 있고 소스에서 완전한 재 빌드를 통해 영향을받는 경우에도 구성 파일을 열 때마다 특정 위치를 소스 코드로 하드 코딩하는 것보다 훨씬 좋습니다.