web-dev-qa-db-fra.com

Comment bien purger et réinstaller Postgresql sur Ubuntu?

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?

213
John Mee

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

43
user9869932

Option A

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

Option B

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
422
John Mee

Les étapes qui ont fonctionné pour moi sur Ubuntu 8.04.2 à supprimer postgres 8.3

  1. 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
    _
  2. 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
    _
  3. Supprimer les dossiers suivants

    _Sudo rm -rf /var/lib/postgresql/
    Sudo rm -rf /var/log/postgresql/
    Sudo rm -rf /etc/postgresql/
    _
14
apt-get purge postgresql*

est assez.

12
Anish Menon

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

12
Klaas van Schelven

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

8
Gurudath BN

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

2
Jeromy French

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)

0
nivniv