Lógica por trás do caminho de instalação binária do Postgres no Debian

4

Parece que a instalação do Postgresql está dividida em três localizações de pastas no Debian:

Configuration: /etc/postgresql

Binaries: /usr/lib/postgresql

Data: /var/lib/postgresql

Eu entendo os benefícios de dividir os arquivos de configuração e os dados, no entanto, a localização dos binários é confusa para mim - por que não seria simplesmente em / usr / bin?

Mais importante, por que alguns binários entram em / usr / bin e outros em / usr / lib?

    
por some1 05.12.2013 / 01:27

2 respostas

2

Essa divisão é bem típica para a maioria dos serviços. Eu estou no Fedora mas a maioria das distribuições faz o mesmo em termos de organizar arquivos baseados em seu tipo, em áreas designadas.

Veja o servidor SQL do Postgres:

  1. Os arquivos de configuração entram em /etc/
  2. Executáveis entram em /usr/bin
  3. As bibliotecas entram em /usr/lib64/pgsql/
  4. As informações de local vão para /usr/share/locale/
  5. Páginas de manual e documentos entram em /usr/share/
  6. Os dados entram em /var/lib/

O racional para ter um diretório de bibliotecas usr/lib/postgresql no seu caso, que é equivalente a /usr/lib64/pgsql/ para minha instalação, é que os aplicativos podem fazer uso de bibliotecas de funções que são fornecidas pelo Postgres. Essas funções estão contidas nessas bibliotecas.

Assim, como desenvolvedor de aplicativos, você poderia vincular as bibliotecas aqui para incorporar chamadas de função no Postgres, em seu aplicativo. Essas bibliotecas muitas vezes incluem a documentação da API, e os desenvolvedores do Postgres mantêm suas APIs especificadas e funcionando corretamente por meio dessas bibliotecas, para que os aplicativos que as utilizem possam ter a garantia de que funcionarão corretamente com essa versão específica de Postgres.

    
por 05.12.2013 / 03:06
3

É política de distribuição Debian que arquivos de configuração, binários e dados são armazenados nestes três locais diferentes. Existem várias razões para isso, incluindo:

  • consistência entre os pacotes
  • mais fácil saber quais diretórios fazer backup, auditar, ajustar, etc.
  • poderia montar / usr somente leitura

A razão pela qual os binários são divididos em dois diretórios tem a ver com a forma como o Debian consegue permitir a instalação de múltiplas versões principais do PostgreSQL em paralelo. Os detalhes disso são explicados em /usr/share/doc/postgresql-common/architecture.html . Em resumo:

  • Todos os programas são armazenados em /usr/lib/postgresql/X.Y/bin .
  • Para programas do lado do servidor, você pode chamá-los diretamente com um caminho completo ou usar wrappers do Debian como pg_ctlcluster para acessá-los.
  • Para programas do lado do cliente, links simbólicos são colocados em /usr/bin que apontam para pg_wrapper , que calcula automaticamente a versão correta a ser chamada.
por 06.12.2013 / 15:06