Como desinstalar versões específicas do Postgres?

11

No Ubuntu 14.04, fiz isso para obter os ú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

Então eu 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 9.4 e desinstalar os outros? obrigado

ATUALIZAR:

Conforme sugerido nos comentários, eu 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 eu 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"?
Houman
fonte
Como você instalou 9.3 e 9.5?
Rinzwind
9.3 foi instalado por padrão no 14.04. 9.5 foi instalado no momento em que adicionei o PPI acima. Apenas instalou o servidor mais recente.
Houman
Postgres não é parte de um Ubuntu padrão ;-) Mas então eu diria que sudo apt-get remove postgresql-9.3irá remover 9,3 (depois de desligar o servidor 9.3)
Rinzwind
Obrigado, segui o seu conselho, consulte a pergunta atualizada.
Houman
Eu encontrei. A solução é limpar tudo como diz aqui: askubuntu.com/a/334730/58150
Houman

Respostas:

7

Versões diferentes do PostgreSQL estão localizadas nos pacotes postgresql-9. *.

  1. Portanto, 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 na pasta / var / lib /, se você tiver:

    /var/lib/postgresql/*
    

Espero que ajude você.

Correcter
fonte
1

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

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

Resposta longa: Quando você instalou várias versões do Postgresql, todos começaram a executar clusters do postgres em portas diferentes. Em sua saída, seguintes versões do PostgreSQL está executando: 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.xwhere 9.xis your version, no entanto, no seu caso, a versão (9.4) presente no sistema está configurada para executar na porta 5434. Portanto, 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, tenta se conectar à porta 5432que não já possui postgres anexados.

Duas soluções aqui :

  • Ou psql -p 5434seja, use a opção port (-p / - port) no comando psql.
  • Ou configure o portvalor de configuração do servidor postgres /etc/postgresql/9.5/main/postgresql.confpara servir no 5432. Não esqueça de reiniciar o postgres após a alteração.
Ankit Kulkarni
fonte