Как тщательно очистить и переустановить postgresql на ubuntu? [закрытый]

Как-то мне удалось полностью испортить установку postgresql на Ubuntu karmic. Я хочу начать с нуля, но когда я "очищаю" пакет с apt-get, он все еще оставляет следы, так что конфигурация переустановки не работает должным образом.

после того, как я сделал:

apt-get purge postgresql
apt-get install postgresql

Он сказал

Setting up postgresql-8.4 (8.4.3-0ubuntu9.10.1) ...
Configuring already existing cluster (configuration: /etc/postgresql/8.4/main, data: /var/lib/postgresql/8.4/main, owner: 108:112)
Error: move_conffile: required configuration file     /var/lib/postgresql/8.4/main/postgresql.conf does not exist
Error: could not create default cluster. Please create it manually with

  pg_createcluster 8.4 main --start

or a similar command (see 'man pg_createcluster').
update-alternatives: using /usr/share/postgresql/8.4/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.

Setting up postgresql (8.4.3-0ubuntu9.10.1) ...

у меня есть "/etc/postgresql" с ничем в нем и "/etc/ postgresql-common / "имеет" pg_upgradecluser.д' каталог и корневой.ЭЛТ и user_clusters файлы.

в /etc / passwd есть пользователь postgres; сценарий очистки, похоже, не касается его. Там была куча симптомов, которые я работаю только для того, чтобы разоблачить следующий.

прямо сейчас, когда я запускаю эту команду " pg_createcluster..."он жалуется, что' /var/lib/postgresql/8.4/main / postgresql.conf не существует", поэтому я найду один из них, но я уверен, что это не конец.

есть ли какой-то простой однострочный (или два) который сожжет его полностью и позволит мне начать все сначала?

9 ответов


во-первых: если ваша установка еще не повреждена, вы можете удалить нежелательные серверы PostgreSQL ("кластеры") в Ubuntu с помощью pg_dropcluster. Используйте это вместо полной очистки и переустановки, если вы просто хотите начать с свежего initdb'д'экземпляр PostgreSQL.

Если вам действительно нужно выполнить полную очистку и переустановку, сначала убедитесь, что PostgreSQL не запущен. ps -C postgres не должно показывать никаких результатов.

Теперь запустите:

apt-get --purge remove postgresql\*

чтобы удалить все PostgreSQL из ваша система. Просто очистка postgres пакета недостаточно, так как это просто пустой мета-пакет.

после удаления всех пакетов PostgreSQL запустите:

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres

теперь вы должны быть в состоянии:

apt-get install postgresql

или для полной инсталляции:

apt-get install postgresql-8.4 postgresql-contrib-8.4 postgresql-doc-8.4

у меня была аналогичная ситуация: мне нужно было очистить postgresql 9.1 на debian wheezy ( я ранее мигрировал из 8.4, и я получал ошибки ).

что я сделал:

во-первых, я удалил config и database

$ sudo pg_dropcluster --stop 9.1 main

затем удален postgresql

$ sudo apt-get remove --purge postgresql postgresql-9.1 

и повторно

$ sudo apt-get install postgresql postgresql-9.1

в моем случае я заметил, что /etc/postgresql / 9.1 пуст, и работает service postgresql start ничего не возвращено

Итак, после более googling я добрался до этой команды:

$ sudo pg_createcluster 9.1 main

С этим я мог бы запустить сервер, но теперь я получал ошибки, связанные с журналом. После дополнительного поиска я изменил разрешения на каталог/var/log / postgresql

$ sudo chown root.postgres /var/log/postgresql
$ sudo chmod g+wx /var/log/postgresql

это исправило проблему, надеюсь, это поможет


Я знаю, что ответ уже был предоставлен, но dselect не работал для меня. Вот что сработало, чтобы найти пакеты для удаления:

# search postgr  | grep ^i
i   postgresql                      - object-relational SQL database (supported 
i A postgresql-8.4                  - object-relational SQL database, version 8.
i A postgresql-client-8.4           - front-end programs for PostgreSQL 8.4     
i A postgresql-client-common        - manager for multiple PostgreSQL client ver
i A postgresql-common               - PostgreSQL database-cluster manager       

# aptitude purge postgresql-8.4 postgresql-client-8.4 postgresql-client-common postgresql-common postgresql

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/

наконец, редактирование /etc /passwd и/etc / group


шагов, которые работали для меня Ubuntu 8.04.2 удалить postgres 8.3

  1. Список всех Postgres связанных пакетов

    dpkg -l | grep postgres
    
    ii  postgresql                            8.3.17-0ubuntu0.8.04.1           object-relational SQL database (latest versi
    ii  postgresql-8.3                        8.3.9-0ubuntu8.04                object-relational SQL database, version 8.3
    ii  postgresql-client                     8.3.9-0ubuntu8.04                front-end programs for PostgreSQL (latest ve
    ii  postgresql-client-8.3                 8.3.9-0ubuntu8.04                front-end programs for PostgreSQL 8.3
    ii  postgresql-client-common              87ubuntu2                        manager for multiple PostgreSQL client versi
    ii  postgresql-common                     87ubuntu2                        PostgreSQL database-cluster manager
    ii  postgresql-contrib                    8.3.9-0ubuntu8.04                additional facilities for PostgreSQL (latest
    ii  postgresql-contrib-8.3                8.3.9-0ubuntu8.04                additional facilities for PostgreSQL
    
  2. удалить все перечисленные выше

    sudo apt-get --purge remove postgresql postgresql-8.3  postgresql-client  postgresql-client-8.3 postgresql-client-common postgresql-common  postgresql-contrib postgresql-contrib-8.3
    
  3. удалите следующие папки

    sudo rm -rf /var/lib/postgresql/
    sudo rm -rf /var/log/postgresql/
    sudo rm -rf /etc/postgresql/
    

apt-get purge postgresql*

достаточно.


после ae шаги, которые я выполнил для удаления и переустановки. Что сработало для меня.

Сначала удалите установленные postgres : -

sudo apt-получить чистку postgr*

sudo apt-get autoremove

затем установите 'synaptic':

sudo apt-get install synaptic

sudo apt-получить обновление

затем установить postgres

sudo apt-get install postgresql postgresql-contrib


Я просто столкнулся с той же проблемой для Ubuntu 13.04. Эти команды удалили Postgres 9.1:

sudo apt-get purge postgresql
sudo apt-get autoremove postgresql

мне приходит в голову, что, возможно, нужна только вторая команда, но оттуда я смог установить Postgres 9.2 (sudo apt-get install postgresql-9.2).


Я следил за ответы, При редактировании /etc / group я также удалил эту строку:

ssl-cert:x:112:postgres

затем, при попытке установить postgresql, я получил эту ошибку

Preconfiguring packages ...
dpkg: unrecoverable fatal error, aborting:
 syntax error: unknown group 'ssl-cert' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)

установка строки "ssl-cert:x: 112: postgres" обратно в /etc / group, похоже, исправляет это (поэтому я смог установить postgresql)


я столкнулся с той же проблемой в моем ubuntu 16.04

но я исправил эту проблему, и это очень просто, просто следуйте этим шагам, и вы сможете установить postgresql 10 в своей системе:

добавьте это в свои источники.список:

sudo vim /etc/apt/sources.list

deb http://ftp.de.debian.org/debian/ wheezy main non-free contrib

deb-src http://ftp.de.debian.org/debian/ wheezy main non-free contrib

после этого добавьте эту ссылку в свой pgdg.список файлов, если его нет, вам нужно создать & & добавить ссылку & & Сохранить его.

sudo vim /etc/apt/sources.list.d/pgdg.list

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main

deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main

затем обновите свою систему

sudo apt-get update

sudo apt-get upgrade

и установите это unmet зависимости :

apt-get install ssl-cert

вот именно. теперь установите postgresql с помощью этой команды

sudo apt-get install postgresql-10