2010-05-01 8 views
195

De alguna manera me las he arreglado para carretera y manta por completo la instalación de PostgreSQL en Ubuntu kármica. Quiero empezar de nuevo desde cero, pero cuando "purgar" el paquete con apt-get todavía deja huellas tras de tal manera que la configuración de reinstalación no se ejecuta correctamente.¿Cómo purgar y reinstalar a fondo postgresql en ubuntu?

Después de que he hecho:

apt-get purge postgresql 
apt-get install postgresql 

Se dijo

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

he un "/ etc/postgresql" sin nada en él y "/ etc/postgresql-common /" tiene un directorio 'pg_upgradecluser.d' y archivos root.crt y user_clusters.

El/etc/passwd tiene un usuario postgres; el script de purga no parece tocarlo. Ha habido un montón de síntomas con los que trabajo solo para exponer el siguiente.

Justo en este momento, cuando ejecuto el comando "pg_createcluster ..." se queja de que '/var/lib/postgresql/8.4/main/postgresql.conf no existe', así que buscaré uno de esos, pero estoy seguro de que no será el final.

¿No hay alguna fácil de una sola línea (o dos), que se quema por completo y me deja volver a empezar?

+2

Pruebe el instalador de un solo clic, es más simple, sus directorios no están dispersos en/etc/y/var. Todos están almacenados en un directorio –

Respuesta

379

Primero: si su instalación no está ya dañada, puede colocar los servidores PostgreSQL no deseados ("clusters") en Ubuntu usando pg_dropcluster. El uso que en preferencia a una purga completa y volver a instalar, si lo que desea es comenzar con un 'ejemplo PostgreSQL recién initdb d.

Si realmente necesita hacer una purga completa y volver a instalar, primero asegúrese de PostgreSQL no se está ejecutando. ps -C postgres no debería mostrar resultados.

Ahora ejecute:

apt-get --purge remove postgresql\* 

para eliminar todo PostgreSQL de su sistema. Solo purgar el paquete postgres no es suficiente, ya que es solo un metapaquete vacío.

Una vez que se han eliminado todos los paquetes PostgreSQL, ejecuta:

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

Ahora debería ser capaz de:

apt-get install postgresql 

o para una instalación completa:

apt-get install postgresql-8.4 postgresql-contrib-8.4 postgresql-doc-8.4 
+19

He reelaborado la respuesta para eliminar consejos para editar manualmente '/ etc/passwd' y'/etc/group' a favor de 'userdel' y' groupdel' más seguros. Además, en lugar de usar 'dselect' para la selección manual de paquetes, use un comodín apt para que coincida con ellos de manera confiable. –

+11

+1 para 'pg_dropcluster' !! (Ejemplo de uso: 'pg_dropcluster --stop 9.1 main') –

+5

agregue libpq5 y libpq-dev a esa lista de depuración, esa lib me dio MUCHOS problemas, hasta que la reinstalé en la versión correcta –

11

que sé ya se ha proporcionado una respuesta, pero dselect no funcionó para mí.Esto es lo que ha trabajado para encontrar los paquetes para eliminar:

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

Por último, editando/etc/passwd y/etc/group

+0

Estas instrucciones funcionaron en debian squeeze/sid – Evgeny

+0

Es mucho más fácil usar un comodín; ver la primera respuesta actualizada. –

0

Estaba siguiendo las respuestas, Al editar/etc/group también suprimen esta línea:

ssl-cert:x:112:postgres 

entonces, cuando se intenta instalar PostgreSQL, tengo este error

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) 

Poner la "ssl-cert: x: 112: postgres" línea de fondo en/etc/grupo parece solucionarlo (por lo que pude para instalar PostgreSQL)

+2

Al eliminar la línea, eliminó todo el grupo "ssl-cert", lo que podría crear estragos en ssl. En cambio, para eliminar postgres del grupo ssl-cert, elimine "postgres" de después de los dos puntos. –

+1

Las instrucciones originales fueron muy erróneas al aconsejarle que edite manualmente '/ etc/passwd'. *nunca hagas eso*. Use los comandos 'userdel' y' groupdel' y no tendrá ese problema en el futuro. –

11

Pasos que trabajaron para mí en Ubuntu 8.04.2 para eliminar postgres 8.3

  1. Lista de Postgres Todos los paquetes relacionados

    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. quita todos los enumerados arriba

    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. Retire las siguientes carpetas

    sudo rm -rf /var/lib/postgresql/ 
    sudo rm -rf /var/log/postgresql/ 
    sudo rm -rf /etc/postgresql/ 
    
+0

Quitar TODOS los paquetes relacionados con Postgres funcionó para mí. Tenía algunos paquetes de 8.4 y 9.1 mezclados. Eso combinado con la eliminación de todo me permitió finalmente reinstalar 9.1 y tener todo trabajando con eso. – Nick

+1

Mucho más fácil con un comodín: 'apt-get --purge remove postgresql \ *' –

10
apt-get purge postgresql* 

es suficiente.

+2

apt-get autoremove postgresql * – johndpope

2

Acabo de encontrarme con el mismo problema para Ubuntu 13.04. Estos comandos eliminan Postgres 9.1:

sudo apt-get purge postgresql 
sudo apt-get autoremove postgresql 

Se me ocurre que tal vez sólo el segundo comando es necesario, pero a partir de ahí pude install Postgres 9.2 (sudo apt-get install postgresql-9.2).

35

Tuve una situación similar: necesitaba purgar postgresql 9.1 en un Debian wheezy (había migrado previamente desde 8.4 y estaba recibiendo errores).

Lo que hice:

En primer lugar, he borrado de configuración y la base de datos

$ sudo pg_dropcluster --stop 9.1 main 

PostgreSQL Entonces eliminado

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

y luego reinstalado

$ sudo apt-get install postgresql postgresql-9.1 

En mi caso notado/etc/postgresql/9.1 estaba vacía, y funcionando service postgresql start devuelto nada

Así que, después de más de googlear llegué a este comando:

$ sudo pg_createcluster 9.1 main 

Con que podría iniciar el servidor, pero ahora yo estaba teniendo errores relacionadas con el registro. Después de más de búsqueda, acabé cambiando los permisos en el directorio/var/log/directorio de PostgreSQL

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

Eso ha solucionado el problema, espero que esto ayude

5

Después ae los pasos que hemos seguido para desinstalar y volver a instalar. Lo cual funcionó para mí.

primer lugar, retire los postgres instalados: -

sudo apt-get postgr de purga *

sudo apt-get autoremove

a continuación, instalar 'sináptica':

sudo apt-get install sináptica

sudo apt-get update

a continuación, instalar postgres

sudo apt-get install postgresql postgresql-contrib

-1

estaba frente mismo problema en mi ubuntu 16.04

pero me fijo ese problema y es muy sencillo sólo tienes que seguir estos pasos y usted será capaz de instalar PostgreSQL 10 en su sistema:

Agregar a su sources.list:

sudo vim /etc/apt/sources.list 

deb http://ftp.de.debian.org/debian/ wheezy main non-free contrib 

deb-src http://ftp.de.debian.org/debian/ wheezy main non-free contrib 

después de que el TDA éstos enlace a su archivo pgdg.list si no está allí usted tiene que crear & & agregar link & & guardarlo.

sudo vim /etc/apt/sources.list.d/pgdg.list 

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main 

deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main 

continuación, actualizar el sistema

sudo apt-get update 

sudo apt-get upgrade 

e instalar que las dependencias incumplidas:

apt-get install ssl-cert 

eso es todo. ahora Instala postgresql usando estos comandos

sudo apt-get install postgresql-10 

Happy coding!

Cuestiones relacionadas