при попытке удалить postgresql с помощью
sudo apt-get remove postgresql
Я получил следующее сообщение об ошибке
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package 'postgresql' is not installed, so not removed
The following packages were automatically installed and are no longer required:
account-plugin-windows-live libupstart1
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up postgresql-common (154ubuntu1) ...
* Starting PostgreSQL 9.3 database server * The PostgreSQL server failed to start. Please check the log output:
2015-07-08 11:16:50 PDT FATAL: could not create lock file "/var/run/postgresql/.s.PGSQL.5432.lock": Permission denied
[fail]
invoke-rc.d: initscript postgresql, action "start" failed.
dpkg: error processing package postgresql-common (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of postgresql-9.3:
postgresql-9.3 depends on postgresql-common (>= 142~); however:
Package postgresql-common is not configured yet.
dpkg: error processing package postgresql-9.3 (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
postgresql-common
postgresql-9.3
E: Sub-process /usr/bin/dpkg returned an error code (1)
то же самое происходит, когда я пытаюсь очистить postgres, что здесь происходит и как мне правильно удалить postgres?
решение1
Твоя проблема
invoke-rc.d: initscript postgresql, action "start" failed.
dpkg: error processing package postgresql-common (--configure):
subprocess installed post-installation script returned error exit status 1
Мое решение
the Короткий путь
sudo rm /etc/init.d/postgresql
sudo rm /etc/init/postgresql.conf
sudo apt-get remove postgresql
илиДолгий путь
Открыть файл
/var/lib/dpkg/info/postgresql-common.postinst
sudo nano /var/lib/dpkg/info/postgresql-common.postinst
Найдите строку с командой start:
if [ -x "/etc/init.d/postgresql" ] || [ -e "/etc/init/postgresql.conf" ]; then invoke-rc.d postgresql start || exit $? fi
закомментируйте блок
# if [ -x "/etc/init.d/postgresql" ] || [ -e "/etc/init/postgresql.conf" ]; then # invoke-rc.d postgresql start || exit $? # fi
Снова снимите упаковку.
sudo apt-get remove postgresql
Объяснение
Во время удаления вызывается postgresql
скрипт postgresql-common.postinst
. Скрипт пытается запустить службу postgresql
и терпит неудачу invoke-rc.d postgresql start
(не спрашивайте почему).
Это необходимо предотвратить. Либо изменив условия выполнения кода. Либо удалив сам код.