web-dev-qa-db-fra.com

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

Sur Ubuntu 14.04, je l’ai fait pour obtenir le dernier 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

Puis j'ai 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 ne garder que 9.4 et désinstaller les autres? Merci

PDATE:

Comme suggéré dans les commentaires, j'ai désinstallé les versions 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 à postgres:

Sudo su postgres

et faire un psql, je reçois 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"?
9
Houman

Différentes versions de PostgreSQL sont situées dans les packages postgresql-9. *.

  1. Donc, vous devriez supprimer vos deux paquets:

    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 de/var/lib/folder si vous avez:

    /var/lib/postgresql/*
    

J'espère que cela vous aidera.

5
Correcter

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 (et non par défaut). Utilisez le bon port

Réponse longue: Lorsque vous avez installé plusieurs versions de Postgresql, elles ont toutes commencé à exécuter des clusters postgres sur un port différent. Dans votre sortie, les versions postgres suivantes 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 à l'aide de Sudo apt-get purge postgresql-9.x, où 9.x est votre version. Toutefois, dans votre cas, la version (9.4) présente sur votre système est configurée pour s'exécuter sur le port 5434. L'erreur Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? indique donc parfaitement que psql tente par défaut de se connecter à le port 5432 qui n'a plus de postgres attaché.

Deux solutions ici:

  • Utilisez l’option psql -p 5434 i.e port (-p/- port) dans la commande psql.
  • Ou configurez la valeur de configuration portde votre serveur postgres dans /etc/postgresql/9.5/main/postgresql.conf pour servir sur 5432. N'oubliez pas de redémarrer postgres après modification.
1
Ankit Kulkarni