web-dev-qa-db-fra.com

le dossier postgresql de la machine ubuntu a été soufflé manuellement - impossible d'installer ou de supprimer des paquets

j'ai une machine où un utilisateur a supprimé son dossier postgresql de la ligne de commande dans le but de désinstaller Postgres. Désormais, lorsque nous essayons d’installer d’autres packages, même non liés, nous continuons à recevoir des messages d’erreur concernant postgresql-common.

J'ai essayé de désinstaller tout ce qui concerne postgresql-9.3 et postgresql-9.4 manuellement via la ligne de commande, mais cela ne fonctionne pas.

C'est ce qui se passe quand j'essaye:

jj@testdev:~/Documents/svc_core_design/svc_core_git/svc-core-docs/net-svc$ Sudo apt-get purge postgresql-client-9.3
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'postgresql-client-9.3' is not installed, so not removed
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 postgresql-9.3 : Depends: postgresql-client-9.3 but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
jj@testdev:~/Documents/svc_core_design/svc_core_git/svc-core-docs/net-svc$ 

Pour voir quels composants postgresql il a encore, j'ai lancé la commande suivante:

Sudo dpkg --get-selections | grep -v deinstall

postgresql-9.3                                  purge
postgresql-client-9.4                           install
postgresql-client-common                        install
postgresql-common                               install

Je souhaite soit supprimer tous les éléments liés à postgresql si possible, soit procéder à une nouvelle installation afin que tout fonctionne correctement. cela via la ligne de commande?

EDIT 1

Voici les résultats d'essayer d'exécuter "Sudo apt-get -f install" sans nom de package:

jj@testdev:/var/lib/postgresql$ Sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libjs-underscore linux-image-3.16.0-25-generic linux-image-3.16.0-33-generic linux-image-extra-3.16.0-25-generic linux-image-extra-3.16.0-33-generic
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up postgresql-common (166.pgdg14.10+1) ...
insserv: warning: script 'mongod' missing LSB tags and overrides
insserv: Default-Start undefined, assuming empty start runlevel(s) for script `mongod'
insserv: Default-Stop  undefined, assuming empty stop  runlevel(s) for script `mongod'
 * Starting PostgreSQL 9.3 database server                                                                                                                                                                                                 * Error: /var/lib/postgresql/9.3/main is not accessible or does not exist
                                                                                                                                                                                                                                   [fail]
 * Starting PostgreSQL 9.4 database server                                                                                                                                                                                                 * Error: /var/lib/postgresql/9.4/main is not accessible or does not exist
                                                                                                                                                                                                                                   [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
Errors were encountered while processing:
 postgresql-common
E: Sub-process /usr/bin/dpkg returned an error code (1)
jj@testdev:/var/lib/postgresql$ Sudo 

Je me suis également assuré que le propriétaire du dossier/var/lib/postgresql est postgres, au cas où cela aiderait. Peut-être devrais-je créer manuellement la structure de dossiers pour laquelle il se plaint?

  /var/lib/postgresql/9.3/main

D'autres suggestions?

EDIT 2

J'ai installé aptitude et essayé de purger postgresql 9.3 et 9.4. Il échoue avec:

jj@testdev:/var/lib/postgresql$ Sudo aptitude purge postgresql-9.3
The following packages will be REMOVED:  
  postgresql-9.3{p} 
The following partially installed packages will be configured:
  postgresql-common 
0 packages upgraded, 0 newly installed, 1 to remove and 5 not upgraded.
Need to get 0 B of archives. After unpacking 17.6 MB will be freed.
Do you want to continue? [Y/n/?] Y
(Reading database ... 339475 files and directories currently installed.)
Removing postgresql-9.3 (9.3.5-2.pgdg14.10+1) ...
 * Stopping PostgreSQL 9.3 database server                                                                                                                                                                                     * Error: /var/lib/postgresql/9.3/main is not accessible or does not exist
                                                                                                                                                                                                                       [fail]
invoke-rc.d: initscript postgresql, action "stop" failed.
dpkg: error processing package postgresql-9.3 (--purge):
 subprocess installed pre-removal script returned error exit status 1
Errors were encountered while processing:
 postgresql-9.3
E: Sub-process /usr/bin/dpkg returned an error code (1)
Failed to perform requested operation on package.  Trying to recover:
Setting up postgresql-common (166.pgdg14.10+1) ...
 * Starting PostgreSQL 9.3 database server                                                                                                                                                                                     * Error: /var/lib/postgresql/9.3/main is not accessible or does not exist
                                                                                                                                                                                                                       [fail]
 * Starting PostgreSQL 9.4 database server                                                                                                                                                                                     * Error: /var/lib/postgresql/9.4/main is not accessible or does not exist
                                                                                                                                                                                                                       [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
Errors were encountered while processing:
 postgresql-common

jj@testdev:/var/lib/postgresql$ 

EDIT 3:

Voici les résultats de l'exécution de la commande "Sudo apt-get purge postgresql-client-9.4 postgresql-client-common postgresql-common"

Removing postgresql-common (166.pgdg14.10+1) ...
 * Stopping PostgreSQL 9.3 database server                                                                                                                                                                                     * Error: /var/lib/postgresql/9.3/main is not accessible or does not exist
                                                                                                                                                                                                                       [fail]
 * Stopping PostgreSQL 9.4 database server                                                                                                                                                                                     * Error: /var/lib/postgresql/9.4/main is not accessible or does not exist
                                                                                                                                                                                                                       [fail]
invoke-rc.d: initscript postgresql, action "stop" failed.
dpkg: error processing package postgresql-common (--purge):
 subprocess installed pre-removal script returned error exit status 1
 * Starting PostgreSQL 9.3 database server                                                                                                                                                                                     * Error: /var/lib/postgresql/9.3/main is not accessible or does not exist
                                                                                                                                                                                                                       [fail]
 * Starting PostgreSQL 9.4 database server                                                                                                                                                                                     * Error: /var/lib/postgresql/9.4/main is not accessible or does not exist
                                                                                                                                                                                                                       [fail]
invoke-rc.d: initscript postgresql, action "start" failed.
dpkg: error while cleaning up:
 subprocess installed post-installation script returned error exit status 1

et quand je vérifie ce qui est installé:

jj@testdev:/var/lib/postgresql$ Sudo dpkg --get-selections | grep -v deinstall | grep post
libreoffice-sdbc-postgresql         install
postgresql-9.3                  purge
postgresql-9.4                  purge
postgresql-common               purge
printer-driver-postscript-hp            install
jj@testdev:/var/lib/postgresql$ 
3
dot

Dans la pléthore de tentatives de suppression à l'aide d'aptitude et d'apt-get remove/purge, un message m'indiquait qu'il ne pouvait pas supprimer postgresql-9.3 car les répertoires/var/lib/postgresql et/var/log/postgresql n'étaient pas vide.

Alors je les ai soufflés et puis j'ai fait le Sudo apt-get purge ... ce qui a fonctionné. Et puis j'ai fait de la purge d'aptitude et cela a fonctionné. Maintenant, nous pouvons réinstaller des paquets sur cette boîte sans erreurs.

2
dot

Avez-vous essayé de purger manuellement les paquets laissés par la tentative de suppression ayant échoué?

Sudo apt-get purge postgresql-client-9.4 postgresql-client-common postgresql-common

Ensuite:

Sudo apt-get update install postgresql

La suppression échoue évidemment car postgresql n’est pas installé, mais la réinstallation risque d’échouer car il ya un problème avec ce qui a été laissé lors de l’installation précédente.

2
kos

J'avais rencontré ce problème en recherchant tous les dossiers postgresql en utilisant whereis postgresql puis en les supprimant manuellement. Mais quand j'ai eu besoin de réinstaller postgresql en utilisant apt-get install postrgesql-10 ou de faire un simple apt-get upgrade, je recevais le code ci-dessous dans le cadre de l'erreur:

Impossible d'ouvrir/usr/share/postgresql-common/maintscripts-functions

Ce que j'ai fait est que j'ai copié le fichier réel de leur dépôt Github ici et que je l'ai placé à cet endroit. Puis j'ai fait les étapes suivantes:

  • dpkg -l | grep postgresql - pour lister les paquetages installés. Cela vous montrera le résultat comme cette capture d'écran .

  • Utilisez les noms de paquetages du résultat ci-dessus et supprimez-les - Sudo apt-get remove <PACKAGE>

  • Ensuite, supprimez tous les paquets restants avec Sudo apt-get autoremove

Redémarrez votre machine une fois après cela et vous devriez être prêt à partir!

0
AryaAdarshaGautam