web-dev-qa-db-fra.com

L'installation du serveur Postgresql continue à échouer en raison d'une erreur postgresql-common

L'installation du serveur postgresql dans Ubuntu 12.04 échoue. Cela semble être dû à une configuration incomplète du paquet postgresql-common. J'ai purgé tous les paquets liés à postgresql, j'ai essayé de réinstaller uniquement le paquet postgresql-common. Une erreur se produisait encore.

L'erreur est:

$ 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)

Une idée comment surmonter/résoudre ceci?

N.B:

  1. J'ai mis à jour et essayé à nouveau, même erreur se produit.
  2. J'ai purgé les paquets liés à postgresql et essayé d'installer postgresql-8.4 et postgresql-9.1, dans les deux cas, cela a échoué en raison de la dépendance à postgresql-common paquet.
1
saji89

Le problème était que l'utilisateur postgres n'était pas créé. (On dirait qu'il y a une erreur avec les scripts de configuration du paquet, mais je ne suis pas sûr) J'ai ensuite créé l'utilisateur manuellement en utilisant:

Sudo useradd -r -s /bin/false postgres

La commande ci-dessus consiste à créer un utilisateur, sans répertoire de base. ( Courtoisie )

Après cela, j'ai essayé d'installer à nouveau, et cela a réussi, sans aucun problème.

N.B:
Des gars de la chaîne Ubuntu IRC m'ont aidé à trouver la solution.

Mise à jour:

Après le redémarrage, le serveur postgresql n'était pas accessible. Nous avons donc essayé de redémarrer le serveur postgresql et avons obtenu le message d'erreur suivant:

$ 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]

Résolu en modifiant le fichier postgresql.conf. Nous devons rechercher la ligne qui commence par celle qui commence par unix_socket_directory et la modifier comme suit:

unix_socket_directory='/tmp'

Maintenant démarrez le serveur postgresql en utilisant:

Sudo service postgresql start

Le problème était parce que

le répertoire par défaut des fichiers de verrouillage dans Ubuntu a été remplacé par/var/run/postgresql, ce qui n’est pas accessible en écriture. Cependant, la simple modification des autorisations d'écriture sur le répertoire ne fonctionne pas; ils sont réinitialisés lorsque le script init par défaut est exécuté.

Courtoisie: http://eclecticquill.com/2013/02/26/postgresql-fails-to-start-on-ubuntu- 12-10 /

Vous avez plus d'informations de cette lien :

Toutefois, si vous essayez d'exécuter une instance du serveur PostgreSQL appartenant à votre utilisateur local, vous devez vous assurer que le répertoire du socket unix est accessible en écriture pour l'utilisateur propriétaire du processus du serveur PostgreSQL. Essayer:

unix_socket_directory = '/ tmp'

En bref:

Nous avons dû le faire car nous avons créé manuellement l'utilisateur postgres.

3
saji89