apt-get을 통해 설치할 때 postgresql의 기본 위치


15

14.04에 postgresql을 설치하면 기본 서버 프로그램 postgres가 다음 위치에 고정됩니다.

/usr/lib/postgresql/9.3/bin/postgres

모든 데이터베이스 클러스터가 저장 될 데이터 디렉토리 :

/var/lib/postgresql/9.3/main

구성 파일은 다음 위치에 있습니다.

/etc/postgresql/9.3/main/postgresql.conf

이제 postgresql.conf 및 기타 구성 파일이 /etc/postgresql/9.3/main에 저장된 이유를 이해할 수 있습니다. 결국, / etc는 설정 파일이 리눅스 시스템에 저장되는 곳입니다.

그러나 왜 데이터베이스 스토리지 영역을 / var / lib에 두어야합니까? 정적이 아닌 데이터의 장소이고 데이터베이스가 정적이 아니기 때문에 / var을 이해할 수 있습니다. 그러나 왜 / var / lib인가?

또한 / bin은 부팅에 필요한 프로그램을위한 것이라고 생각합니다. / usr / bin은 배포판에 포함 된 프로그램을위한 것입니다. / usr / local / bin은 배포판에 포함되어 있지 않지만 시스템 전체에서 사용할 수있는 프로그램 용이어야합니다. 따라서 postgresql은 시스템 전체에서 사용하기 때문에 / usr / local / bin에서 사용할 수 있습니다. 그러나 그들은 그것을 / usr / lib에 넣습니다. 왜 그런지 모르겠습니다.

왜이 질문을합니까? 순서와 구조가 없으면 일상적으로 사용하는 프로그램의 위치를 ​​기억하기가 어렵습니다.

답변:


11

파일 시스템 계층 표준에서 `/ 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)

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