Jak odinstalować określone wersje Postgres?

11

Na Ubuntu 14.04 zrobiłem to, aby uzyskać najnowsze posty:

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

Następnie zainstalowałem wersję 9.4:

sudo apt-get install postgresql-9.4

Wygląda jednak na to, że mam teraz trzy wersje:

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 ]

Jak mogę zachować tylko 9.4 i odinstalować pozostałe? Dzięki

AKTUALIZACJA:

Zgodnie z sugestiami w komentarzach odinstalowałem 9.3 i 9.5.

Ale kiedy to zrobię:

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

Jak dotąd tak dobrze, ale kiedy przejdę na postgres:

sudo su postgres

i zrobić psql, pojawia się błąd:

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
źródło
Jak zainstalowałeś 9.3 i 9.5?
Rinzwind
9.3 został zainstalowany domyślnie w 14.04. 9.5 został zainstalowany w momencie dodania PPI powyżej. Właśnie zainstalował najnowszy serwer.
Houman
Postgres nie jest częścią domyślnego Ubuntu ;-) Ale zakładam, sudo apt-get remove postgresql-9.3że usunie 9.3 (po wyłączeniu serwera 9.3)
Rinzwind
Dzięki, postępowałem zgodnie z twoją radą, zobacz zaktualizowane pytanie.
Houman
Znalazłem to. Rozwiązaniem jest oczyszczenie wszystkiego, jak tu jest napisane: askubuntu.com/a/334730/58150
Houman

Odpowiedzi:

7

Różne wersje PostgreSQL znajdują się w pakietach postgresql-9. *.

  1. Więc powinieneś usunąć swoje dwa pakiety:

    sudo apt-get purge postgresql-9.3 postgresql-9.5
    
  2. Następnie powinieneś usunąć niepotrzebne foldery konfiguracji:

    rm -r /etc/postgresql/9.3/ /etc/postgresql/9.5
    
  3. I z folderu / var / lib /, jeśli masz:

    /var/lib/postgresql/*
    

Mam nadzieję, że ci to pomoże.

Correcter
źródło
1

Dodanie odpowiedzi bardzo późno, ale może pomóc ludziom tutaj.

Krótka odpowiedź: błąd wskazuje, że postgres jest skonfigurowany na niewłaściwym (nie domyślnym) porcie. Użyj właściwego portu

Długa odpowiedź: po zainstalowaniu wielu wersji Postgresql wszystkie zaczęły uruchamiać klastry Postgres na innym porcie. W swojej produkcji, są następujące wersje Postgres działa: 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

Możesz odinstalować inne wersje, używając sudo apt-get purge postgresql-9.xgdzie 9.xjest twoja wersja, jednak w twoim przypadku wersja (9.4), która była obecna w twoim systemie, jest skonfigurowana do działania na porcie 5434. Zatem błąd Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?doskonale wskazuje, że psql domyślnie próbuje połączyć się z portem, 5432który nie ma już załączone postgresy.

Dwa rozwiązania tutaj :

  • Albo użyj psql -p 5434np. Opcji portu (-p / - port) w komendzie psql.
  • Lub skonfiguruj portwartość konfiguracji serwera postgres, /etc/postgresql/9.5/main/postgresql.confaby działała na 5432. Nie zapomnij zrestartować postgres po zmianie.
Ankit Kulkarni
źródło