Як видалити конкретні версії Postgres?


11

У Ubuntu 14.04 я зробив це, щоб отримати останні постгреси:

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

Тоді я встановив версію 9.4:

sudo apt-get install postgresql-9.4

Однак, здається, у мене зараз три версії:

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 ]

Як я можу зберегти лише 9,4 та видалити інші? Дякую

ОНОВЛЕННЯ:

Як було запропоновано в коментарях, я видалив 9.3 та 9.5.

Але коли я це роблю:

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

Поки що добре, але коли я переходжу на постгреси:

sudo su postgres

і роблю psql, я отримую помилку:

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

Як ви встановили 9.3 та 9.5?
Rinzwind

9.3 встановлено за замовчуванням у 14.04. 9.5 було встановлено в момент, коли я додав ІЦН вище. Просто встановлено останній сервер.
Хьюман

Postgres не є частиною Ubuntu за замовчуванням ;-) Але тоді я припускаю sudo apt-get remove postgresql-9.3, що
вилучу

Дякую, що я дотримувався вашої поради, дивіться оновлене запитання.
Хьюман

Я знайшов це. Рішення полягає в тому, щоб очистити всі , як тут сказано: askubuntu.com/a/334730/58150
Houman

Відповіді:


7

Різні версії PostgreSQL розміщені в пакунках postgresql-9. *.

  1. Тому вам слід видалити два пакунки:

    sudo apt-get purge postgresql-9.3 postgresql-9.5
    
  2. Потім слід видалити непотрібні конфігураційні папки:

    rm -r /etc/postgresql/9.3/ /etc/postgresql/9.5
    
  3. І з / var / lib / папки, якщо у вас є:

    /var/lib/postgresql/*
    

Сподіваюся, це допоможе тобі.


1

Додавання відповіді дуже пізно, але може допомогти людям тут.

Коротка відповідь: Помилка вказує на постгреси, налаштовані на неправильному (не за замовчуванням) порту. Використовуйте правильний порт

Довга відповідь: Коли ви встановили кілька версій Postgresql, усі вони почали виконувати кластери postgres на іншому порту. У вашому виході наступні 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

Ви можете видалити інші версії, використовуючи, sudo apt-get purge postgresql-9.xде 9.xваша версія, але у вашому випадку версія (9.4), яка була присутня у вашій системі, налаштована на запуск порту 5434. Таким чином, помилка Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?чудово вказує на те, що psql за замовчуванням намагається підключитися до порту, 5432який ні довше додані будь-які постгреси.

Тут є два рішення :

  • У psql -p 5434команді psql використовуйте тобто варіант порту (-p / - порт).
  • Або налаштуйте portзначення конфігурації сервера postgres, /etc/postgresql/9.5/main/postgresql.confщоб воно працювало на 5432. Не забудьте перезапустити постгреси після зміни.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.