Назад | Перейти на главную страницу

Удалить несуществующий кластер postgres

У меня установлен postgres 8.4 на ubuntu 10.04. Я создал кластер на диске, который больше не монтируется. Теперь я хочу удалить postgres, но когда я это сделаю apt-get remove postgresql-8.4 Я получил:

dpkg: error processing postgresql-8.4 (--remove):
 Package is in a very bad inconsistent state - you should
 reinstall it before attempting a removal.
Errors were encountered while processing:
 postgresql-8.4

И когда я делаю apt-get upgrade говорит:

Selecting previously deselected package postgresql-8.4.
Preparing to replace postgresql-8.4 8.4.9-0ubuntu0.10.04 (using .../postgresql-8.4_8.4.14-0ubuntu10.04_amd64.deb) ...
 * Stopping PostgreSQL 8.4 database server
 * Error: /mnt/db/postgresql/8.4/main is not accessible or does not exist
   ...fail!
invoke-rc.d: initscript postgresql-8.4, action "stop" failed.
dpkg: warning: old pre-removal script returned error exit status 1
dpkg - trying script from the new package instead ...
 * Stopping PostgreSQL 8.4 database server
 * Error: /mnt/db/postgresql/8.4/main is not accessible or does not exist
   ...fail!
invoke-rc.d: initscript postgresql-8.4, action "stop" failed.
dpkg: error processing /var/cache/apt/archives/postgresql-8.4_8.4.14-0ubuntu10.04_amd64.deb (--unpack):
 subprocess new pre-removal script returned error exit status 1
 * Starting PostgreSQL 8.4 database server
 * Error: /mnt/db/postgresql/8.4/main is not accessible or does not exist
   ...fail!
invoke-rc.d: initscript postgresql-8.4, action "start" failed.

Похоже, что apt задыхается от несуществующего кластера. Как я могу удалить этот кластер и деинсталлировать postgres?

Понял:

pg_dropcluster --stop 8.4 main
>>> warning: corrupted cluster: data directory does not exist

Игнорируйте это предупреждение. Если вы сделаете это во второй раз, появится сообщение, что кластер пропал.

Чтобы снова вернуть dpkg в нормальное состояние:

apt-get install postgres-8.4

И избавьтесь от этого:

apt-get remove --purge postgres-8.4
apt-get autoremove