¿Cómo desinstalar versiones específicas de Postgres?

¿Cómo desinstalar versiones específicas de Postgres?

En Ubuntu 14.04 hice esto para obtener los últimos 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

Luego instalé la versión 9.4:

sudo apt-get install postgresql-9.4

Sin embargo, parece que ahora tengo tres versiones:

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 ]

¿Cómo puedo conservar solo la 9.4 y desinstalar las demás? Gracias

ACTUALIZAR:

Como se sugiere en los comentarios, desinstalé 9.3 y 9.5.

Pero cuando hago esto:

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

Hasta ahora todo bien, pero cuando cambio a postgres:

sudo su postgres

y hago un psql, me sale error:

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"?

Respuesta1

Las diferentes versiones de PostgreSQL se encuentran en los paquetes postgresql-9.*.

  1. Entonces deberías eliminar tus dos paquetes:

    sudo apt-get purge postgresql-9.3 postgresql-9.5
    
  2. Entonces deberías eliminar las carpetas de configuración innecesarias:

    rm -r /etc/postgresql/9.3/ /etc/postgresql/9.5
    
  3. Y desde la carpeta /var/lib/ si tienes:

    /var/lib/postgresql/*
    

Espero que te ayude.

Respuesta2

Agregar la respuesta muy tarde, pero podría ayudar a la gente aquí.

Respuesta corta:El error indica que Postgres está configurado en un puerto incorrecto (no predeterminado). Utilice el puerto correcto

Respuesta larga: Cuando instaló varias versiones de Postgresql, todas comenzaron a ejecutar clústeres de Postgres en diferentes puertos. En su salida, se están ejecutando las siguientes versiones de Postgres: 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

Puede desinstalar las otras versiones usando sudo apt-get purge postgresql-9.xdónde 9.xestá su versión; sin embargo, en su caso, la versión (9.4) que estaba presente en su sistema está configurada para ejecutarse en el puerto 5434. Por lo tanto, el error Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?indica perfectamente que psql de forma predeterminada intenta conectarse al puerto 5432que no ya no tiene ningún postgres adjunto.

Dos soluciones aquí:

  • Utilice, psql -p 5434es decir, la opción de puerto (-p/--port) en el comando psql.
  • O configure portel valor de configuración de su servidor Postgres /etc/postgresql/9.5/main/postgresql.confpara que funcione en 5432. No olvide reiniciar Postgres después del cambio.

información relacionada