it-swarm.com.de

Wie kann ich postgresql auf Ubuntu gründlich löschen und neu installieren?

Irgendwie habe ich es geschafft, die Installation von postgresql auf Ubuntu karmic komplett zu nerven. Ich möchte von vorne anfangen, aber wenn ich das Paket mit apt-get "lösche", hinterlässt es immer noch Spuren, so dass die Neuinstallationskonfiguration nicht richtig ausgeführt wird.

Nachdem ich getan habe:

apt-get purge postgresql
apt-get install postgresql

Es sagte

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) ...

Ich habe eine "/ etc/postgresql" mit nichts und "/ etc/postgresql-common /" hat ein "pg_upgradecluser.d" Verzeichnis und root.crt und user_clusters Dateien.

Die/etc/passwd hat einen postgres-Benutzer; Das Bereinigungsskript scheint es nicht zu berühren. Es gab eine Reihe von Symptomen, die ich nur durcharbeite, um die nächsten aufzudecken.

Genau in dieser Sekunde, wenn ich den Befehl "pg_createcluster ..." ausführe, beschwert er sich darüber, dass "/var/lib/postgresql/8.4/main/postgresql.conf nicht existiert". Ich bin sicher, das wird nicht das Ende sein.

Gibt es nicht einen einfachen Einzeiler (oder zwei), der ihn vollständig verbrennt und mich von vorne beginnen lässt?

213
John Mee

Ich hatte eine ähnliche Situation: Ich musste postgresql 9.1 auf einem Debian-Wheezy bereinigen (ich war zuvor von 8.4 migriert und es traten Fehler auf).

Was ich getan habe:

Zuerst habe ich config und database gelöscht

$ Sudo pg_dropcluster --stop 9.1 main

Dann entfernte postgresql

$ Sudo apt-get remove --purge postgresql postgresql-9.1 

und dann neu installiert

$ Sudo apt-get install postgresql postgresql-9.1

In meinem Fall habe ich festgestellt, dass /etc/postgresql/9.1 leer ist und service postgresql start gab nichts zurück

Nachdem ich weiter gegoogelt hatte, kam ich zu folgendem Befehl:

$ Sudo pg_createcluster 9.1 main

Damit konnte ich den Server starten, aber jetzt bekam ich logbezogene Fehler. Nach weiteren Recherchen änderte ich schließlich die Berechtigungen für das Verzeichnis/var/log/postgresql

$ Sudo chown root.postgres /var/log/postgresql
$ Sudo chmod g+wx /var/log/postgresql

Ich hoffe, das hilft

43
user9869932

Option A

Wenn Ihre Installation noch nicht beschädigt ist, können Sie unerwünschte PostgreSQL-Server ("Cluster") mit pg_dropcluster Löschen. Verwenden Sie dies anstelle einer vollständigen Bereinigung und Neuinstallation, wenn Sie nur mit einer neuen PostgreSQL-Instanz neu starten möchten.

$ 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

Option B

Wenn Sie wirklich eine vollständige Bereinigung und Neuinstallation durchführen müssen, stellen Sie zunächst sicher, dass PostgreSQL nicht ausgeführt wird. ps -C postgres Sollte keine Ergebnisse zeigen.

Führen Sie nun Folgendes aus:

apt-get --purge remove postgresql\*

um alles von PostgreSQL zu entfernen. Nur das postgres -Paket zu löschen, reicht nicht aus, da es sich nur um ein leeres Metapaket handelt.

Nachdem alle PostgreSQL-Pakete entfernt wurden, führen Sie Folgendes aus:

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres

Sie sollten jetzt in der Lage sein:

apt-get install postgresql

oder für eine vollständige Installation:

apt-get install postgresql-8.4 postgresql-contrib-8.4 postgresql-doc-8.4
422
John Mee

Schritte, die bei mir funktioniert haben Ubuntu 8.04.2 entfernen postgres 8.3

  1. Alle Postgres-bezogenen Pakete auflisten

    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
    
  2. Alle oben aufgeführten entfernen

    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
    
  3. Entfernen Sie die folgenden Ordner

    Sudo rm -rf /var/lib/postgresql/
    Sudo rm -rf /var/log/postgresql/
    Sudo rm -rf /etc/postgresql/
    
14
apt-get purge postgresql*

reicht.

12
Anish Menon

Ich weiß, dass bereits eine Antwort vorliegt, aber dselect hat bei mir nicht funktioniert. Folgendes hat funktioniert, um die zu entfernenden Pakete zu finden:

# 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/

Zuletzt bearbeiten Sie/etc/passwd und/etc/group

12

Befolgen Sie die Schritte, die ich befolgt habe, um zu deinstallieren und neu zu installieren. Was bei mir funktioniert hat.

Entfernen Sie zuerst die installierten Postgres: -

Sudo apt-get purge postgr *

Sudo apt-get autoremove

Dann installiere 'synaptic':

Sudo apt-get synaptic installieren

Sudo apt-get update

Dann postgres installieren

Sudo apt-get install postgresql postgresql-contrib

8
Gurudath BN

Ich bin gerade auf dasselbe Problem mit Ubuntu 13.04 gestoßen. Diese Befehle haben Postgres 9.1 entfernt:

Sudo apt-get purge postgresql
Sudo apt-get autoremove postgresql

Mir fällt ein, dass vielleicht nur der zweite Befehl erforderlich ist, aber von dort aus konnte ich Postgres 9.2 installieren (Sudo apt-get install postgresql-9.2).

2
Jeromy French

Ich verfolgte die Antworten, als ich/etc/group bearbeitete, löschte ich auch diese Zeile:

ssl-cert:x:112:postgres

wenn ich dann versuche, postgresql zu installieren, erhalte ich diesen Fehler

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)

Das Setzen der Zeile "ssl-cert: x: 112: postgres" in/etc/group scheint das Problem zu beheben (so konnte ich postgresql installieren)

0
nivniv