al intentar desinstalar postgresql con
sudo apt-get remove postgresql
Recibí el siguiente mensaje de error
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)
Lo mismo sucede cuando intento purgar Postgres, ¿qué está pasando aquí y cómo puedo eliminar Postgres correctamente?
Respuesta1
Tu problema
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
Mi solución
elCamino corto
sudo rm /etc/init.d/postgresql
sudo rm /etc/init/postgresql.conf
sudo apt-get remove postgresql
o elLargo camino
Abre el archivo
/var/lib/dpkg/info/postgresql-common.postinst
sudo nano /var/lib/dpkg/info/postgresql-common.postinst
Busque la línea con el comando de inicio:
if [ -x "/etc/init.d/postgresql" ] || [ -e "/etc/init/postgresql.conf" ]; then invoke-rc.d postgresql start || exit $? fi
comenta el bloque
# if [ -x "/etc/init.d/postgresql" ] || [ -e "/etc/init/postgresql.conf" ]; then # invoke-rc.d postgresql start || exit $? # fi
Retire el paquete nuevamente.
sudo apt-get remove postgresql
Explicación
Durante la eliminación de postgresql
, se llama al script postgresql-common.postinst
. El script intenta iniciar el servicio postgresql
y falla invoke-rc.d postgresql start
(no me preguntes por qué).
Esto debe evitarse. Ya sea cambiando las condiciones bajo las cuales se ejecuta el código. O mediante la eliminación del propio código.