D'une manière ou d'une autre, j'ai réussi à enculer complètement l'installation de postgresql sur Ubuntu karmic. Je veux tout recommencer à zéro, mais lorsque je "purge" le paquet avec apt-get, il laisse encore des traces, de sorte que la configuration de la réinstallation ne fonctionne pas correctement.
Après que j'ai fait:
apt-get purge postgresql
apt-get install postgresql
Ça disait
Setting up postgresql-8.4 (8.4.3-0ubuntu9.10.1) ...
Configuring already existing cluster (configuration: /etc/postgresql/8.4/main, data: /var/lib/postgresql/8.4/main, owner: 108:112)
Error: move_conffile: required configuration file /var/lib/postgresql/8.4/main/postgresql.conf does not exist
Error: could not create default cluster. Please create it manually with
pg_createcluster 8.4 main --start
or a similar command (see 'man pg_createcluster').
update-alternatives: using /usr/share/postgresql/8.4/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.
Setting up postgresql (8.4.3-0ubuntu9.10.1) ...
J'ai un "/ etc/postgresql" qui ne contient rien et "/ etc/postgresql-common /" a un répertoire "pg_upgradecluser.d" et des fichiers root.crt et user_clusters.
Le fichier/etc/passwd a un utilisateur postgres; le script de purge ne semble pas le toucher. Il y a eu toute une série de symptômes sur lesquels je travaille uniquement pour exposer le suivant.
Dès ce moment, lorsque je lance la commande "pg_createcluster ...", il se plaint que "/var/lib/postgresql/8.4/main/postgresql.conf n'existe pas", je vais donc en trouver un, mais je " Je suis sûr que ce ne sera pas la fin.
N'y a-t-il pas un seul support (ou deux) facile qui le brûlera complètement et me permettra de recommencer?
J'avais une situation similaire: je devais purger Postgresql 9.1 sur un Debian Wheezy (j'avais déjà migré de 8.4 et j'avais des erreurs).
Ce que j'ai fait:
D'abord, j'ai supprimé la configuration et la base de données
$ Sudo pg_dropcluster --stop 9.1 main
Puis supprimé postgresql
$ Sudo apt-get remove --purge postgresql postgresql-9.1
puis réinstallé
$ Sudo apt-get install postgresql postgresql-9.1
Dans mon cas, j'ai remarqué que /etc/postgresql/9.1 était vide et que courir service postgresql start
ne retournait rien.
Donc, après plus de recherches sur Google, je suis arrivé à cette commande:
$ Sudo pg_createcluster 9.1 main
Avec cela, je pouvais démarrer le serveur, mais maintenant, je rencontrais des erreurs liées au journal. Après plus de recherches, j'ai fini par changer les permissions dans le répertoire/var/log/postgresql
$ Sudo chown root.postgres /var/log/postgresql
$ Sudo chmod g+wx /var/log/postgresql
Cela a résolu le problème, espérons que cela aide
Si votre installation n'est pas déjà endommagée, vous pouvez supprimer les serveurs (grappes) PostgreSQL non désirés à l'aide de pg_dropcluster
. Utilisez-le plutôt pour une purge complète et une réinstallation si vous souhaitez simplement redémarrer avec une nouvelle instance PostgreSQL.
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
11 main 5432 online postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
$ Sudo systemctl stop postgresql@11-main
$ Sudo pg_dropcluster --stop 11 main
$ Sudo pg_createcluster --start 11 main
Si vous avez vraiment besoin de purger et de réinstaller complètement, assurez-vous d'abord que PostgreSQL n'est pas en cours d'exécution. ps -C postgres
ne devrait afficher aucun résultat.
Maintenant, lancez:
apt-get --purge remove postgresql\*
pour tout supprimer de PostgreSQL de votre système. Il ne suffit pas de purger le paquet postgres
car il ne s'agit que d'un méta-paquet vide.
Une fois que tous les paquets PostgreSQL ont été supprimés, exécutez:
rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres
Vous devriez maintenant pouvoir:
apt-get install postgresql
ou pour une installation complète:
apt-get install postgresql-8.4 postgresql-contrib-8.4 postgresql-doc-8.4
Les étapes qui ont fonctionné pour moi sur Ubuntu 8.04.2
à supprimer postgres 8.3
Liste de tous les paquets associés à Postgres
_dpkg -l | grep postgres
ii postgresql 8.3.17-0ubuntu0.8.04.1 object-relational SQL database (latest versi
ii postgresql-8.3 8.3.9-0ubuntu8.04 object-relational SQL database, version 8.3
ii postgresql-client 8.3.9-0ubuntu8.04 front-end programs for PostgreSQL (latest ve
ii postgresql-client-8.3 8.3.9-0ubuntu8.04 front-end programs for PostgreSQL 8.3
ii postgresql-client-common 87ubuntu2 manager for multiple PostgreSQL client versi
ii postgresql-common 87ubuntu2 PostgreSQL database-cluster manager
ii postgresql-contrib 8.3.9-0ubuntu8.04 additional facilities for PostgreSQL (latest
ii postgresql-contrib-8.3 8.3.9-0ubuntu8.04 additional facilities for PostgreSQL
_
Supprimer tout ce qui est mentionné ci-dessus
_Sudo apt-get --purge remove postgresql postgresql-8.3 postgresql-client postgresql-client-8.3 postgresql-client-common postgresql-common postgresql-contrib postgresql-contrib-8.3
_
Supprimer les dossiers suivants
_Sudo rm -rf /var/lib/postgresql/
Sudo rm -rf /var/log/postgresql/
Sudo rm -rf /etc/postgresql/
_
apt-get purge postgresql*
est assez.
Je sais qu'une réponse a déjà été fournie, mais dselect n'a pas fonctionné pour moi. Voici ce qui a fonctionné pour trouver les paquets à supprimer:
# search postgr | grep ^i
i postgresql - object-relational SQL database (supported
i A postgresql-8.4 - object-relational SQL database, version 8.
i A postgresql-client-8.4 - front-end programs for PostgreSQL 8.4
i A postgresql-client-common - manager for multiple PostgreSQL client ver
i A postgresql-common - PostgreSQL database-cluster manager
# aptitude purge postgresql-8.4 postgresql-client-8.4 postgresql-client-common postgresql-common postgresql
rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
Enfin, éditer les fichiers/etc/passwd et/etc/group
En suivant les étapes que j'ai suivies pour désinstaller et réinstaller. Ce qui a fonctionné pour moi.
Commencez par supprimer le postgres installé: -
Sudo apt-get purge postgr *
Sudo apt-get autoremove
Ensuite installez 'synaptic':
Sudo apt-get install synaptic
Sudo apt-get update
installez ensuite postgres
Sudo apt-get installer postgresql postgresql-contrib
Je viens de rencontrer le même problème pour Ubuntu 13.04. Ces commandes ont supprimé Postgres 9.1:
Sudo apt-get purge postgresql
Sudo apt-get autoremove postgresql
Il me semble que seule la deuxième commande est peut-être nécessaire, mais à partir de là, j'ai pu installer Postgres 9.2 (Sudo apt-get install postgresql-9.2 ).
Je suivais les réponses. Lors de l'édition de/etc/group, j'ai également supprimé cette ligne:
ssl-cert:x:112:postgres
alors, en essayant d'installer postgresql, j'ai eu cette erreur
Preconfiguring packages ...
dpkg: unrecoverable fatal error, aborting:
syntax error: unknown group 'ssl-cert' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)
Remettre la ligne "ssl-cert: x: 112: postgres" dans/etc/group semble résoudre ce problème (j'ai donc pu installer postgresql)