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

11

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 mantener solo 9.4 y desinstalar los otros? 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 un 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"?
Houman
fuente
¿Cómo instaló 9.3 y 9.5?
Rinzwind
9.3 se instaló por defecto en 14.04. 9.5 se instaló en el momento en que agregué el PPI anterior. Acaba de instalar el último servidor.
Houman
Postgres no es parte de un Ubuntu predeterminado ;-) Pero supongo sudo apt-get remove postgresql-9.3que eliminará 9.3 (después de apagar el servidor 9.3)
Rinzwind
Gracias, seguí tu consejo, consulta la pregunta actualizada.
Houman
Lo encontré. La solución es purgar todo lo que se dice aquí: askubuntu.com/a/334730/58150
Houman

Respuestas:

7

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

  1. Por lo tanto, debe eliminar sus 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 tiene:

    /var/lib/postgresql/*
    

Espero que te ayude.

Corrector
fuente
1

Agregar respuesta muy tarde, pero podría ayudar a las personas aquí.

Respuesta corta: el error indica que postgres está configurado en un puerto incorrecto (no predeterminado). Usa 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, siguientes versiones de Postgres se están ejecutando: 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 intenta conectarse de forma predeterminada al puerto 5432que no ya tiene algún postgres adjunto.

Dos soluciones aquí :

  • Utilice la psql -p 5434opción de puerto (-p / - port) en el comando psql.
  • O configure el portvalor de configuración del servidor postgres /etc/postgresql/9.5/main/postgresql.confpara que se publique en 5432. No olvide reiniciar postgres después del cambio.
Ankit Kulkarni
fuente