Comment désinstaller des versions spécifiques de Postgres?

11

Sur Ubuntu 14.04, j'ai fait cela pour obtenir les derniers postgres:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade

J'ai ensuite installé la version 9.4:

sudo apt-get install postgresql-9.4

Cependant, il semble que j'ai maintenant trois versions:

sudo service postgresql stop

 * Stopping PostgreSQL 9.3 database server  [ OK ]
 * Stopping PostgreSQL 9.4 database server  [ OK ]
 * Stopping PostgreSQL 9.5 database server  [ OK ]

Comment puis-je conserver seulement 9.4 et désinstaller les autres? Merci

MISE À JOUR:

Comme suggéré dans les commentaires, j'ai désinstallé 9.3 et 9.5.

Mais quand je fais ça:

sudo service postgresql status
9.3/main (port 5432): down
9.4/main (port 5434): online
9.5/main (port 5433): down

Jusqu'ici tout va bien, mais quand je passe aux postgres:

sudo su postgres

et faire un psql, j'obtiens une erreur:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Houman
la source
Comment avez-vous installé 9.3 et 9.5?
Rinzwind
9.3 a été installé par défaut en 14.04. 9.5 a été installé au moment où j'ai ajouté le PPI ci-dessus. Il vient d'installer le dernier serveur.
Houman
Postgres ne fait pas partie d'un Ubuntu par défaut ;-) Mais alors je suppose sudo apt-get remove postgresql-9.3que supprimer 9.3 (après l'arrêt du serveur 9.3)
Rinzwind
Merci d'avoir suivi vos conseils, voir la question mise à jour.
Houman
Je l'ai trouvé. La solution est de tout purger comme il est dit ici: askubuntu.com/a/334730/58150
Houman

Réponses:

7

Différentes versions de PostgreSQL se trouvent dans les packages postgresql-9. *.

  1. Vous devez donc supprimer vos deux packages:

    sudo apt-get purge postgresql-9.3 postgresql-9.5
    
  2. Ensuite, vous devez supprimer les dossiers de configuration inutiles:

    rm -r /etc/postgresql/9.3/ /etc/postgresql/9.5
    
  3. Et à partir du dossier / var / lib / si vous avez:

    /var/lib/postgresql/*
    

J'espère que cela vous aidera.

Correcteur
la source
1

Ajouter la réponse très tard mais pourrait aider les gens ici.

Réponse courte: une erreur indique que postgres est configuré sur un mauvais port (pas par défaut). Utilisez le bon port

Réponse longue: lorsque vous avez installé plusieurs versions de Postgresql, toutes ont commencé à exécuter des clusters postgres sur différents ports. Dans votre sortie, les versions suivantes de Postgres sont en cours d' exécution: 9.3 --> 5432, 9.4 -->5434, 9.5 --> 5433.

sudo service postgresql status
9.3/main (port 5432): down
9.4/main (port 5434): online
9.5/main (port 5433): down

Vous pouvez désinstaller les autres versions en utilisant sudo apt-get purge postgresql-9.x9.xest votre version mais dans votre cas, la version (9.4) qui était présente sur votre système est configurée pour fonctionner sur le port 5434. Ainsi, l'erreur Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?indique parfaitement que psql par défaut essaye de se connecter au port 5432qui ne n'a plus de postgres attachés.

Deux solutions ici :

  • Soit utiliser l' psql -p 5434option ie port (-p / - port) dans la commande psql.
  • Ou configurez la portvaleur de configuration de votre serveur postgres dans /etc/postgresql/9.5/main/postgresql.confpour servir sur 5432. N'oubliez pas de redémarrer postgres après modification.
Ankit Kulkarni
la source