파일 시스템 계층 표준에서 `/ var / lib / 는 (이탤릭체로 가장 중요한 부분)으로 표시됩니다 :
5.8.1 목적
이 계층에는 응용 프로그램이나 시스템과 관련된 상태 정보가 있습니다. 상태 정보는 프로그램이 실행되는 동안 수정하고 하나의 특정 호스트와 관련된 데이터입니다. 패키지 작업을 구성하기 위해 사용자는 / var / lib에서 파일을 수정할 필요가 없습니다.
상태 정보는 일반적으로 호출 간 및 동일한 응용 프로그램의 서로 다른 인스턴스간에 응용 프로그램 (또는 상호 관련 응용 프로그램 그룹)의 상태를 유지하는 데 사용됩니다. 상태 정보는 일반적으로 재부트 후에도 유효한 상태로 유지되고 출력을 기록하지 않아야하며 데이터를 스풀해서는 안됩니다.
응용 프로그램 (또는 관련 응용 프로그램 그룹)은 데이터에 / var / lib의 하위 디렉토리를 사용해야합니다. 필요한 하위 디렉토리 인 / var / lib / misc가 있는데, 이는 하위 디렉토리가 필요하지 않은 상태 파일 용입니다. 다른 서브 디렉토리는 해당 응용 프로그램이 분배에 포함 된 경우에만 존재해야합니다.
/ var / lib /는 모든 배포 패키징 지원에 사용해야하는 위치입니다. 물론 다른 배포판은 다른 이름을 사용할 수 있습니다.
간단히 말해서 : / var / lib /는 로컬로 사용되는 데이터를위한 것입니다.
따라서 데이터베이스의 데이터를 / var / lib / {mysql | postgress} / 디렉토리에 두는 것이 합리적이지만 FHS는 주로 배포 에서 사용하기 위해 만들어진 표준입니다 . 사용자는 원하는 곳에 데이터를 자유롭게 넣을 수 있으며 대부분 의견의 문제입니다.
"local"이라는 단어를 오해하고 있습니다. / usr / local / bin /은 시스템 소프트웨어 용이 아니라 사용자 고유의 소프트웨어 용입니다 (기본적으로 "local"이있는 항목은 시스템에서 절대로 손대지 않아야합니다. FHS에서 설명 함).
/ usr / local /
4.9.1 목적
/ usr / local 계층은 소프트웨어를 로컬로 설치할 때 시스템 관리자가 사용합니다. 시스템 소프트웨어가 업데이트 될 때 덮어 쓰지 않도록 안전해야합니다. 호스트 그룹간에 공유 가능하지만 / usr에는없는 프로그램 및 데이터에 사용될 수 있습니다. 로컬에 설치된 소프트웨어는 / usr에서 소프트웨어를 교체하거나 업그레이드하기 위해 설치되지 않는 한 / usr이 아닌 / usr / local에 있어야합니다.
시스템 소프트웨어에서 설치된 실행 파일은 로컬로 이동해서는 안됩니다.
이제 / usr / lib / 입니다.
4.7.1 목적
/ usr / lib에는 사용자 나 셸 스크립트에서 직접 실행하지 않는 개체 파일, 라이브러리 및 내부 바이너리가 포함되어 있습니다. 응용 프로그램은 / usr / lib 아래에 단일 하위 디렉토리를 사용할 수 있습니다. 응용 프로그램이 서브 디렉토리를 사용하는 경우, 응용 프로그램이 독점적으로 사용하는 모든 아키텍처 종속 데이터는 해당 서브 디렉토리 내에 있어야합니다.
postgressql은 부팅시 시작된 데몬일까요? 그렇다면 여기에 두는 것이 좋습니다. 명령을 직접 사용하지 말고 서비스를 시작하십시오. / usr / lib /의 파일은 자체 사용자 및 그룹 및 / 또는 / var / lib에 대한 액세스를 제한하는 데몬을 갖는 경향이 있습니다 (예 : mysqld 만 / var / lib / mysql /에 액세스 할 수 있습니다. postgressql)