A instalação do servidor Postgresql continua falhando devido ao erro postgresql-common

1

A instalação do servidor postgresql no Ubuntu 12.04 falha. Parece ser devido a configuração incompleta do pacote postgresql-common.  Eu purgou todos os pacotes relacionados ao postgresql, tentei reinstalar o pacote postgresql-common apenas. Ainda ocorreu erro.

O erro é:

$ sudo apt-get install postgresql-common
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  postgresql-common
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/96.5 kB of archives.
After this operation, 442 kB of additional disk space will be used.
Preconfiguring packages ...
Selecting previously unselected package postgresql-common.
(Reading database ... 176855 files and directories currently installed.)
Unpacking postgresql-common (from .../postgresql-common_129ubuntu1_all.deb) ...
Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common'
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Setting up postgresql-common (129ubuntu1) ...
adduser: The user 'postgres' does not exist.
dpkg: error processing postgresql-common (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 postgresql-common
E: Sub-process /usr/bin/dpkg returned an error code (1)

Alguma ideia de como superar / resolver isso?

N.B:

  1. Eu atualizei e tentei novamente, o mesmo erro está ocorrendo.
  2. Limpei os pacotes relacionados ao postgresql e tentei instalar os dois postgresql-8.4 e postgresql-9.1 , em ambos os casos, ele falhou devido à dependência de postgresql-common package.
por saji89 02.04.2014 / 11:42

1 resposta

3

O problema foi que postgres user não estava sendo criado (parece um erro com os scripts de configuração do pacote, embora não tenha certeza) Eu criei o usuário manualmente usando:

sudo useradd -r -s /bin/false postgres

O comando acima é para criar um usuário, sem o diretório home ( Cortesia )

Depois disso, tentei instalar novamente e consegui, sem problemas.

N.B:
Alguns caras do canal de IRC do Ubuntu me ajudaram com a solução.

Atualização:

Após a reinicialização, o postgresql server não estava acessível, portanto, tentou reiniciar o postgresql server e obteve o seguinte erro:

$ sudo service postgresql restart
[sudo] password for username: 
 * Restarting PostgreSQL 8.4 database server                                     
 * The PostgreSQL server failed to start. Please check the log output:
2014-04-03 09:54:22 IST FATAL:  could not create lock file "/var/run/postgresql/.s.PGSQL.5432.lock": Permission denied
[fail]

Resolveu editando o arquivo postgresql.conf . Nós temos que procurar a linha que começa com que começa unix_socket_directory e alterá-lo para ler como o seguinte:

unix_socket_directory='/tmp'

Agora inicie o servidor postgresql usando:

sudo service postgresql start

O problema foi porque

  

o diretório padrão para arquivos de bloqueio no Ubuntu foi alterado para   / var / run / postgresql, que não é gravável pelo mundo. No entanto, simplesmente   alterar as permissões de gravação no diretório não funciona; eles são   redefinir quando o script init padrão é executado.

Cortesia: link

Obtenha mais informações deste link :

  

Mas se você está tentando executar uma instância do servidor PostgreSQL   de propriedade do seu usuário local, você precisa garantir que o soquete unix   o diretório é gravável pelo usuário que possui o servidor PostgreSQL   processo. Experimente:

     

unix_socket_directory = '/ tmp'

Resumindo:

Tivemos que fazer isso porque criamos o usuário postgres manualmente.

    
por saji89 02.04.2014 / 13:10