web-dev-qa-db-fra.com

Paquets cassés à partir de versions incompatibles

J'ai essayé de réparer certaines dépendances pour installer Cinelerra, et d'installer stupidement libvpx1: AMD64 pour Sid et cela a donné un paquet cassé. Synaptic ne pouvait pas le réparer. J'ai essayé apt-get install -f et cela m'a donné ceci:

ZHD ~ # apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... failed.
The following packages have unmet dependencies:
 libvpx1 : Breaks: libvpx1:i386 (!= 1.3.0-2) but 1.2.0-2 is installed
 libvpx1:i386 : Breaks: libvpx1 (!= 1.2.0-2) but 1.3.0-2 is installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
E: Unable to correct dependencies

J'ai essayé de supprimer libvpx1: AMD64 et il dit que ce n'est pas possible car libvpx1: i386 est une version différente. J'ai essayé l'inverse en supprimant libvpx1: i386, qui indique que ce n'est pas possible, car libvpx1: AMD64 est une version différente. Je ne peux pas rétrograder ou mettre à niveau l'un ou l'autre de ces packages pour essayer de leur donner la même version.

Si quelqu'un a des suggestions, je serais heureux de les entendre!

Aptitude donne quelques solutions, mais implique la désinstallation de la moitié de mon logiciel ....

2
Zebulun

J'ai trouvé la réponse sur cette page:

http://www.iasptk.com/ubuntu-fix-broken-package-best-solution

Après avoir essayé

Sudo dpkg --configure -a

et

Sudo apt-get install -f

le problème d'un paquet cassé existe toujours la solution consiste à éditer manuellement le fichier d'état de dpkg.

Sudo nano /var/lib/dpkg/status (vous pouvez utiliser vi ou gedit au lieu de nano)

Localisez le package endommagé, supprimez tout le bloc d'informations à ce sujet et enregistrez le fichier.

J'ai ensuite exécuté Sudo apt-get update && upgrade

et il a demandé d'installer le paquet manquant. Tout fonctionne bien maintenant, et j'ai appris à ne pas installer aussi hardiment les paquets à partir d'autres versions ....

2
Zebulun

Vous avez installé des versions incompatibles de la même bibliothèque dans différentes architectures (AMD64, i386). Ce n'est pas permis.

Pour résoudre ce problème, exécutez Sudo apt-get install -f libvpx1:i386=1.3.0-2 ou Sudo apt-get install -f libvpx1=1.2.0-2. L'ancienne commande repoussera libvpx1: i386 vers la version de Sid et la dernière command renverra libvpx1: AMD64 vers la version i386 (Wheezy? Jessie?).

3
saiarcot895

C'est arrivé parce que vous avez probablement installé deux versions distinctes d'apt dont une était incompatible. Par conséquent, déterminez quelle est la version d'architecture de votre système et supprimez l'autre paquet en procédant comme suit: Vous devrez modifier le statut du fichier dpkg manuellement.

  1. Exécutez la commande suivante:

$ Sudo nano/var/lib/dpkg/status

(Vous pouvez utiliser n'importe quel autre éditeur au lieu de nano (comme gedit, vi, etc ...)

  1. Recherchez "Package: libapt-pkg" dans le fichier qui s'ouvre.
  2. si vous trouvez plusieurs segments du même nom, coupez-les tous, stockez-les dans un fichier et laissez celui qui convient.
  3. Enregistrez le fichier ici et continuez avec les commandes apt occasionnelles.
  4. Si l'erreur persiste, remplacez le bloc "Package: libapt-pkg" par un autre du fichier que vous avez copié.
0
divyanshu anand