Comment corriger les problèmes de dépendances de packages

Le gestionnaire de package APT facile à utiliser pour installer, supprimer et mettre à jour des paquets mais parfois quand vous mixez diverses sources (ppa), il y a des chances que apt-get finissent par vous donner une erreur vous indiquant que l’installation d’un package n’a pas pu être terminée avec ce genre d’erreur :
<some-package>: Depends: <other-package> (= version) but this-version is to be installed

1ère piste :

La première à vérifier est que vous ayez bien activer les dépots restricted et universe. Appuyez sur les touches [ALT] + [F2] et tapez le texte suivant :
software-properties-gtk

activer :

  • Logiciel libre maintenu par la communauté (universe)
  • Pilotes propriétaires de périphériques (restricted)

Après il faut refaire la procédure habituelle :

sudo apt-get update
sudo apt-get dist-upgrade

2nd piste :

Bon si vous lisez ceci c’est que cela n’a pas fonctionné. Il y a peut-être un package corrompu, il faut faire du ménage :

sudo apt-get clean
sudo apt-get autoclean
sudo apt-get update
sudo apt-get dist-upgrade

3ème piste

Il faut tenter de forcer l’installation via cette option :

sudo apt-get -f install
sudo dpkg --configure -a

Vous obtenez toujours ce message en sortie :
0 mis à jour, 0 nouvellement installés, 0 à enlever et 1 non mis à jour

Il faut identifier ce package pour le désinstaller :

sudo apt-get -u dist-upgrade

Maintenant vérifions si cela peut avoir de lourdes conséquences avec cette option permettant de contrôler quels sont les packages qui vont être désinstaller en cascade :

sudo apt-get remove --dry-run nom_du_package

Voici un exemple avec shutter :
bob@Pc-Fixe: ~ : sudo apt-get remove --dry-run shutter
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
libalgorithm-c3-perl libbit-vector-perl libcarp-clan-perl libclass-c3-perl
libclass-c3-xs-perl libclass-data-inheritable-perl
libclass-method-modifiers-perl libcrypt-openssl-bignum-perl
libcrypt-openssl-rsa-perl libdata-random-perl libdate-calc-perl
libdate-calc-xs-perl libextutils-depends-perl libextutils-pkgconfig-perl
libfile-which-perl libgconf2-4 libgd-gd2-perl libgnome2-canvas-perl
libgnome2-gconf-perl libgnome2-perl libgnome2-vfs-perl libgnome2-wnck-perl
libgoo-canvas-perl libgoocanvas-common libgoocanvas3 libgtk2-imageview-perl
libgtk2-unique-perl libhttp-server-simple-perl libmouse-perl
libmro-compat-perl libnet-dbus-perl libnet-dropbox-api-perl
libnet-oauth-perl libpath-class-perl libproc-processtable-perl
libproc-simple-perl libsort-naturally-perl libunique-1.0-0
libwww-mechanize-perl libx11-protocol-perl libxml-twig-perl
libxml-xpath-perl perlmagick
Veuillez utiliser « apt-get autoremove » pour les supprimer.
Les paquets suivants seront ENLEVÉS :
shutter
0 mis à jour, 0 nouvellement installés, 1 à enlever et 15 non mis à jour.
Remv shutter [0.90-1~getdeb1]

On peut voir que seul l’application va être désinstallé. Les librairies utilisées par cette seule application pourront être ensuite désinstallé avec l’option auto-remove.
Tout est sans danger alors désinstallons ce package :

sudo apt-get --purge remove nom_du_package