Как тщательно очистить и переустановить 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
-
Список всех 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
-
удалить все перечисленные выше
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/
после 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