Como desinstalar versões específicas do Postgres?

Como desinstalar versões específicas do Postgres?

No Ubuntu 14.04 eu fiz isso para obter o postgres mais recente:

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

Então instalei a versão 9.4:

sudo apt-get install postgresql-9.4

No entanto, parece que agora tenho três versões:

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 ]

Como posso manter apenas o 9.4 e desinstalar os outros? Obrigado

ATUALIZAR:

Conforme sugerido nos comentários, desinstalei 9.3 e 9.5.

Mas quando eu faço isso:

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

Até aí tudo bem, mas quando mudo para o postgres:

sudo su postgres

e faço um psql, recebo um erro:

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

Responder1

Diferentes versões do PostgreSQL estão localizadas nos pacotes postgresql-9.*.

  1. Então você deve remover seus dois pacotes:

    sudo apt-get purge postgresql-9.3 postgresql-9.5
    
  2. Então você deve remover pastas de configuração desnecessárias:

    rm -r /etc/postgresql/9.3/ /etc/postgresql/9.5
    
  3. E da pasta /var/lib/ se você tiver:

    /var/lib/postgresql/*
    

Espero que isso ajude você.

Responder2

Adicionar resposta muito tarde, mas pode ajudar as pessoas aqui.

Resposta curta:Erro indica postgres configurado na porta errada (não padrão). Use a porta certa

Resposta longa: Quando você instalou várias versões do Postgresql, todas elas começaram a executar clusters postgres em portas diferentes. Na sua saída, as seguintes versões do postgres estão em execução: 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

Você pode desinstalar as outras versões usando sudo apt-get purge postgresql-9.xonde 9.xestá a sua versão, porém no seu caso a versão (9.4) que estava presente no seu sistema está configurada para rodar na porta 5434. Assim o erro Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?indica perfeitamente que o psql por padrão está tentando se conectar à porta 5432que não não tem mais nenhum postgres anexado.

Duas soluções aqui:

  • Use psql -p 5434a opção de porta (-p/--port) no comando psql.
  • portOu configure o valor de configuração do servidor postgres /etc/postgresql/9.5/main/postgresql.confpara servir em 5432. Não se esqueça de reiniciar o postgres após a alteração.

informação relacionada