Instale várias versões do PostgreSQL com diferentes versões do plugin PostGIS no Ubuntu 12.04

0

Eu tenho um servidor com o Ubuntu 12.04.5 (preciso) que executa duas versões diferentes do PostgreSQL (8,3 e 9,1) em duas portas diferentes (5432 e 5433). Eu os instalei das fontes de pacotes padrão. Tudo corre bem e limpo.

A Instalação 8.3 usa o Plugin PostGIS (Versão 1.5.3-2). Para a configuração 9.1, gostaria de instalar o PostGIS em uma Versão > 2.0. Eu temo que eu quebre a (importante) execução da configuração 8.3 quando eu instalar manualmente uma nova versão do PostGIS. O parâmetro de prefixo do ./configure-script parece estar quebrado e eu não sei como evitar nova versão de sobrescrever o antigo.

Existe uma maneira segura de ativar a nova versão de extensão na configuração 9.1?

Por favor, deixe-me saber se você precisar de mais informações sobre o sistema para responder a isso.

    
por nevrome 10.01.2017 / 17:28

1 resposta

2

Eu tenho um Ubuntu 16.04 rodando com o servidor postgreSQL 9.1, 9.3 e 9.5, onde o 9.5 possui o postgis 2.2 instalado (via pacote postgresql-9.5-postgis-2.2). Na instalação normal do servidor, há /usr/bin/pg_config , um script que primeiro procura pg_config em /usr/lib/postgresql/*/bin/ (e, se existir, usa a versão mais recente) e, se não houver nenhum, usa /usr/bin/pg_config.libpq-dev , que faz parte do instalação do desenvolvedor do cliente. Você pode simplesmente tentar executar pg_config para ver se ele encontra uma versão e para onde aponta.

Eu baixei postgis-2.2.4.tar.gz , descompactei e tentei executar ./configure. Isso acabou com uma mensagem de erro, dizendo que eu tinha que instalar o pacote do desenvolvedor do servidor. Então eu fiz sudo apt-get install postgresql-server-dev-9.5 (para 9.5; você deve instalar 9.1, veja link ). Isso forneceu /usr/lib/postgresql/9.5/bin/pg_config e ./configure teve êxito.

grep PGSQL config.log deu

| #define PGSQL_LOCALEDIR "/usr/share/locale"
| #define POSTGIS_PGSQL_VERSION 95
| #define PGSQL_LOCALEDIR "/usr/share/locale"
| #define POSTGIS_PGSQL_VERSION 95
| #define PGSQL_LOCALEDIR "/usr/share/locale"
| #define POSTGIS_PGSQL_VERSION 95
| #define PGSQL_LOCALEDIR "/usr/share/locale"
| #define POSTGIS_PGSQL_VERSION 95
PGSQL_BE_CPPFLAGS='-I/usr/include/postgresql/9.5/server'
PGSQL_BINDIR='/usr/lib/postgresql/9.5/bin'
PGSQL_DOCDIR='/usr/share/doc/postgresql-doc-9.5'
PGSQL_FE_CPPFLAGS='-I/usr/include/postgresql'
PGSQL_FE_LDFLAGS='-L/usr/lib/x86_64-linux-gnu -lpq'
PGSQL_MANDIR='/usr/share/postgresql/9.5/man'
PGSQL_SHAREDIR='/usr/share/postgresql/9.5'
POSTGIS_PGSQL_VERSION='95'
#define PGSQL_LOCALEDIR "/usr/share/locale"
#define POSTGIS_PGSQL_VERSION 95

para que os caminhos de instalação (BINDIR, DOCDIR, MANDIR e SHAREDIR) apontem para a instalação mais recente (9.5). Após sucesso make então make -n install (não esqueça de -n !) Mostrou os caminhos de instalação. A maioria deles apontava para /usr/lib/postgresql/9.5/lib e /usr/share/postgresql/9.5/extension , com exceção de liblwgeom , que seria instalado em /usr/local/lib e /usr/local/include .

Então, primeiro você pode tentar ./configure (o que não vai prejudicar) e ver se dá um erro, e se não, para onde a instalação iria. Provavelmente você precisa instalar os arquivos de desenvolvimento, que também instalarão o pg_config correto para sua versão. Contanto que você não sudo make install , nada deve ser instalado.

E, claro, tem um backup atual confiável da sua instalação em execução!

    
por ridgy 11.01.2017 / 12:26