web-dev-qa-db-fra.com

apt-get upgrade bloqué sur la dépendance postgresql

J'ai exécuté Sudo apt-get upgrade sur mon serveur 12.04 et je suis resté bloqué avec une dépendance PostgreSQL.

La sortie de la console (de Sudo apt-get -f install) est ci-dessous:

dpkg: dependency problems prevent configuration of postgresql-9.1:
  postgresql-client-9.1 (9.1.7-0ubuntu12.04) breaks postgresql-9.1 (<< 9.1.7-0ubuntu12.04) and is installed.
  Version of postgresql-9.1 to be configured is 9.1.6-1~precise2.
dpkg: error processing postgresql-9.1 (--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-9.1
E: Sub-process /usr/bin/dpkg returned an error code (1)

Comment résoudre ce problème?

nb. J'ai une base de données de production s'exécutant sur ce serveur, donc purger/réinstaller Postgres n'est qu'un dernier recours.

Modifier:

Comme demandé, le résultat de apt-get update: http://paste.ubuntu.com/1469631/

7
Peter Mellett

J'ai rencontré le même problème avec cette mise à jour postgresql.

La version la plus récente de postgres est la version 9.1.7. Pour une raison quelconque, la version 9.1.6 ne se trouve pas dans le référentiel. Voici comment j'ai rétrogradé la version 9.1.5:

Sudo apt-get -V install postgresql-client-9.1=9.1.5-0ubuntu12.04 
Sudo apt-get -V install postgresql-9.1=9.1.5-0ubuntu12.04

Notez que j'ai rétrogradé le client en premier. Il semble que la dernière mise à jour contienne un bogue qui provoque une erreur de dépendance entre le client et le serveur.

edit: Si vous souhaitez empêcher la mise à niveau ultérieure de postgresql, voir cette page: https://help.ubuntu.com/community/PinningHowto . Veillez à appliquer cette méthode au client et au serveur.

9
AgDude

Voici une autre solution (la solution d'AgDude ne fonctionnait pas sur mon système, même si je pense avoir le même problème. J'ai également installé plpython. Je pense que cela complique les choses.)

Supprimez les informations du paquet postgres de/var/lib/dpkg/status (sauvegardez d’abord le fichier, bien sûr). Je pense que cela signifie que apt ne réalisera pas que postgres est installé, et donc ne restera pas bloqué s'il ne trouve pas la version 9.1.6 dans le référentiel.

Cette solution vous permettra de mettre à jour le reste de votre système comme d’habitude et d’installer/supprimer à nouveau un logiciel. Bien sûr, il ne mettra plus à jour postgres.

J'ai laissé des paquets avec des références à postgres. Les voici, alors vous savez que vous n’avez pas à les enlever:

  1. Paquetage: libpq-dev
  2. Paquet: libreoffice-core
  3. Paquet: rsyslog
3
Pete