Die Deinstallation von Postgres schlägt fehl

Die Deinstallation von Postgres schlägt fehl

beim Versuch, PostgreSQL zu deinstallieren mit

sudo apt-get remove postgresql

Ich habe die folgende Fehlermeldung erhalten

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)

das gleiche passiert, wenn ich versuche, Postgres zu bereinigen. Was passiert hier und wie kann ich Postgres ordnungsgemäß entfernen?

Antwort1

Ihr Problem

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

Meine Lösung

DieKurzer Weg

sudo rm /etc/init.d/postgresql
sudo rm /etc/init/postgresql.conf
sudo apt-get remove postgresql

oder derLanger Weg

  • Öffne die Datei/var/lib/dpkg/info/postgresql-common.postinst

    sudo nano /var/lib/dpkg/info/postgresql-common.postinst
    
  • Durchsuchen Sie die Zeile mit dem Startbefehl:

    if [ -x "/etc/init.d/postgresql" ] || [ -e "/etc/init/postgresql.conf" ]; then
            invoke-rc.d postgresql start || exit $?
    fi
    
  • den Block auskommentieren

    # if [ -x "/etc/init.d/postgresql" ] || [ -e "/etc/init/postgresql.conf" ]; then
    #        invoke-rc.d postgresql start || exit $?
    # fi
    
  • Entnehmen Sie das Paket wieder.

    sudo apt-get remove postgresql
    

Erläuterung

Während der Entfernung wird postgresqldas Skript postgresql-common.postinstaufgerufen. Das Skript versucht den Dienst zu starten postgresqlund schlägt fehl invoke-rc.d postgresql start(fragen Sie mich nicht warum).

Dies muss verhindert werden. Entweder indem man die Bedingungen ändert, unter denen der Code ausgeführt wird. Oder indem man den Code selbst entfernt.

verwandte Informationen