Как тщательно очистить и переустановить postgresql на ubuntu?
Как-то мне удалось полностью запутать установку postgresql в кармане Ubuntu. Я хочу начать с нуля, но когда я "очищаю" пакет с помощью 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.d" и файлы root.crt и user_clusters.
У пользователя /etc/passwd есть пользователь postgres; чистка script, похоже, не касается. Было множество симптомов, с которыми я работаю, чтобы разоблачить следующий.
Справа на эту секунду, когда я запускаю эту команду "pg_createcluster...", она жалуется, что "/var/lib/postgresql/8.4/main/postgresql.conf не существует", поэтому я пойду найду одну из этих но я уверен, что это не конец.
Есть ли какой-нибудь простой однострочный (или два), который полностью сгорит и позволит мне начать?
Ответы
Ответ 1
У меня была аналогичная ситуация: мне нужно было очистить postgresql 9.1 от debian wheezy (ранее я перешел с 8.4, и я получал ошибки).
Что я сделал:
Сначала я удалил конфигурацию и базу данных
$ 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
не возвращался
Итак, после еще большего поиска я пришел к этой команде:
$ sudo pg_createcluster 9.1 main
С этим я могу запустить сервер, но теперь я получаю ошибки, связанные с журналом. После большего поиска я в конечном итоге менял разрешения на каталог /var/log/postgresql
$ sudo chown root.postgres /var/log/postgresql
$ sudo chmod g+wx /var/log/postgresql
Это исправило проблему, надеюсь, что это поможет
Ответ 2
Вариант А
Если ваша установка еще не повреждена, вы можете удалить ненужные серверы PostgreSQL ("кластеры") с помощью pg_dropcluster
. Используйте это вместо полной очистки и переустановки, если вы просто хотите перезапустить со свежим экземпляром PostgreSQL.
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
11 main 5432 online postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
$ sudo systemctl stop [email protected]
$ sudo pg_dropcluster --stop 11 main
$ sudo pg_createcluster --start 11 main
Вариант Б
Если вам действительно необходимо выполнить полную очистку и переустановить, сначала убедитесь, что 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
Ответ 3
Шаги, которые работали для меня на Ubuntu 8.04.2
, чтобы удалить postgres 8.3
-
Список всех связанных с Postgre пакетов
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
-
Удалите все перечисленные выше
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
-
Удалите следующие папки
sudo rm -rf /var/lib/postgresql/
sudo rm -rf /var/log/postgresql/
sudo rm -rf /etc/postgresql/
Ответ 4
Я знаю, что ответ уже предоставлен, но 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
Ответ 5
apt-get purge postgresql*
.
Ответ 6
Следуя инструкции, выполните следующие шаги, чтобы удалить и переустановить. Что сработало для меня.
Сначала удалите установленные postgres: -
sudo apt-get purge postgr *
sudo apt-get autoremove
Затем установите "synaptic":
sudo apt-get install synaptic
Обновление sudo apt-get
Затем установите postgres
sudo apt-get install postgresql postgresql-contrib
Ответ 7
Я только столкнулся с той же проблемой для Ubuntu 13.04. Эти команды удалены Postgres 9.1:
sudo apt-get purge postgresql
sudo apt-get autoremove postgresql
Мне кажется, что, возможно, нужна только вторая команда, но оттуда я смог установить Postgres 9.2 (sudo apt-get установите postgresql-9.2).
Ответ 8
Я следил за ответами,
При редактировании /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)
Ответ 9
Я столкнулся с той же проблемой в моем Ubuntu 16.04
но я исправил эту проблему, и это очень просто, просто следуйте этим шагам, и вы сможете установить postgresql 10 в вашей системе:
Добавьте это в ваш sources.list:
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.list, если его там нет, вам нужно создать && добавить ссылку && сохранить его.
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
и установите эти неудовлетворенные зависимости:
apt-get install ssl-cert
это. Теперь установите postgresql, используя эти команды
sudo apt-get install postgresql-10