Debian의 Postgres 바이너리 설치 경로 뒤에 있는 논리

Debian의 Postgres 바이너리 설치 경로 뒤에 있는 논리

Debian의 Postgresql 설치는 세 개의 폴더 위치로 분할된 것 같습니다.

구성: /etc/postgresql

바이너리: /usr/lib/postgresql

데이터: /var/lib/postgresql

구성 파일과 데이터를 분할하면 얻을 수 있는 이점을 이해하지만 바이너리의 위치가 혼란스럽습니다. 왜 단순히 /usr/bin에 있지 않습니까?

더 중요한 것은 왜 일부 바이너리는 /usr/bin에 들어가고 다른 바이너리는 /usr/lib에 들어가나요?

답변1

데비안 배포 정책에 따르면 구성 파일, 바이너리, 데이터는 이 세 가지 다른 위치에 저장됩니다. 여기에는 다음과 같은 여러 가지 이유가 있습니다.

  • 패키지 간 일관성
  • 백업, 감사, 조정 등을 수행할 디렉터리를 파악하는 것이 더 쉽습니다.
  • /usr은 읽기 전용으로 마운트할 수 있습니다.

바이너리가 두 개의 디렉터리로 분할되는 이유는 데비안에서 PostgreSQL의 여러 주요 버전을 병렬 설치할 수 있는 방법과 관련이 있습니다. 이것에 대해 자세히 설명하십시오 /usr/share/doc/postgresql-common/architecture.html. 간단히 말해서:

  • 모든 프로그램은 /usr/lib/postgresql/X.Y/bin.
  • 서버 측 프로그램의 경우 전체 경로를 사용하여 직접 호출하거나 Debian 래퍼를 사용하여 pg_ctlcluster액세스할 수 있습니다.
  • 클라이언트 프로그램의 경우 심볼릭 링크가 /usr/bin해당 포인터 에 삽입 pg_wrapper되고 호출할 올바른 버전을 자동으로 파악합니다.

답변2

이 분할은 대부분의 서비스에서 매우 일반적입니다. 저는 Fedora를 사용하고 있지만 대부분의 배포판은 파일 유형에 따라 지정된 영역에 파일을 구성하는 것과 동일한 작업을 수행합니다.

Postgres SQL 서버를 살펴보십시오.

  1. 구성 파일 항목/etc/
  2. 실행 파일 항목/usr/bin
  3. 도서관 입장/usr/lib64/pgsql/
  4. 지역 설정 정보 입력/usr/share/locale/
  5. 매뉴얼 페이지 및 문서 항목/usr/share/
  6. 데이터 입력/var/lib/

usr/lib/postgresql귀하의 경우(내 설치와 동일) 라이브러리 디렉터리를 갖는 이유는 /usr/lib64/pgsql/응용 프로그램이 Postgres에서 제공하는 라이브러리를 사용할 수 있도록 하기 위한 것입니다. 이러한 함수는 이러한 라이브러리에 포함되어 있습니다.

따라서 애플리케이션 개발자로서 여기의 라이브러리에 연결하여 Postgres 및 애플리케이션에 함수 호출을 통합할 수 있습니다. 이러한 라이브러리에는 일반적으로 API 문서가 포함되며 Postgres 개발자는 API가 지정되고 이러한 라이브러리를 통해 올바르게 작동하는지 확인하므로 이를 사용하는 응용 프로그램은 해당 특정 버전의 Postgres에서 올바르게 작동함을 보장할 수 있습니다.

관련 정보