Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to thoroughly purge and reinstall postgresql on ubuntu? [closed]

Somehow I've managed to completely bugger the install of postgresql on Ubuntu karmic. I want to start over from scratch, but when I "purge" the package with apt-get it still leaves traces behind such that the reinstall configuration doesn't run properly.

After I've done:

apt-get purge postgresql apt-get install postgresql 

It said

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

I have a "/etc/postgresql" with nothing in it and "/etc/postgresql-common/" has a 'pg_upgradecluser.d' directory and root.crt and user_clusters files.

The /etc/passwd has a postgres user; the purge script doesn't appear to touch it. There's been a bunch of symptoms which I work through only to expose the next.

Right this second, when I run that command "pg_createcluster..." it complains that '/var/lib/postgresql/8.4/main/postgresql.conf does not exist', so I'll go find one of those but I'm sure that won't be the end of it.

Is there not some easy one-liner (or two) which will burn it completely and let me start over?

like image 677
John Mee Avatar asked May 01 '10 02:05

John Mee


People also ask

How do I completely remove PostgreSQL?

To uninstall PostgreSQL, navigate to the Windows Control Panel to open the Uninstall or change a program dialog and Right-click the PostgreSQL 13 and select Uninstall/Change from the context menu. You can either remove the entire application or individual components.

How do I completely remove PostgreSQL from Linux?

Postgresql comes with an uninstaller which you can (and should) invoke if you want to get rid of it. You find that uninstall-postgres tool in the installation folder, by default /Library/PostgreSQL/<version> . Execute the uninstall-postgres. app tool which you find there, to remove Postgresql from your system.

How do I uninstall and reinstall PostgreSQL?

So, in order to completely reinstall the PostgreSQL do the following: sudo apt-get --purge remove postgresql-* sudo rm -Rf /etc/postgresql /var/lib/postgresql. sudo apt-get install postgresql.


2 Answers

Option A

If your install isn't already damaged, you can drop unwanted PostgreSQL servers ("clusters") using pg_dropcluster. Use that in preference to a full purge and reinstall if you just want to restart with a fresh PostgreSQL instance.

$ 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 postgresql@11-main $ sudo pg_dropcluster --stop 11 main $ sudo pg_createcluster --start 11 main 

Option B

If you really need to do a full purge and reinstall, first make sure PostgreSQL isn't running. ps -C postgres should show no results.

Now run:

apt-get --purge remove postgresql\* 

to remove everything PostgreSQL from your system. Just purging the postgres package isn't enough since it's just an empty meta-package.

Once all PostgreSQL packages have been removed, run:

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

You should now be able to:

apt-get install postgresql 

or for a complete install:

apt-get install postgresql-8.4 postgresql-contrib-8.4 postgresql-doc-8.4 
like image 193
John Mee Avatar answered Oct 11 '22 12:10

John Mee


I had a similar situation: I needed to purge postgresql 9.1 on a debian wheezy ( I had previously migrated from 8.4 and I was getting errors ).

What I did:

First, I deleted config and database

$ sudo pg_dropcluster --stop 9.1 main 

Then removed postgresql

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

and then reinstalled

$ sudo apt-get install postgresql postgresql-9.1 

In my case I noticed /etc/postgresql/9.1 was empty, and running service postgresql start returned nothing

So, after more googling I got to this command:

$ sudo pg_createcluster 9.1 main 

With that I could start the server, but now I was getting log-related errors. After more searching, I ended up changing permissions to the /var/log/postgresql directory

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

That fixed the issue, Hope this helps

like image 35
user9869932 Avatar answered Oct 11 '22 10:10

user9869932