J'ai lu et suivi les conseils de cette question en vain. J'essaie d'installer libssl1.0.0:i386
sur ma box 14.04 (amd64), mais quand j'essaye de le faire via APT, je reçois le message d'erreur suivant :
[email protected]:~$ sudo apt-get install libssl1.0.0:i386
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help resolve the situation:
The following packages have unmet dependencies:
default-jre-headless : Depends: openjdk-7-jre-headless (>= 7~u3-2.1.1) but it is not going to be installed
openjdk-7-jre : Depends: openjdk-7-jre-headless (= 7u55-2.4.7-1ubuntu1) but it is not going to be installed
Recommends: libgnome2-0 but it is not going to be installed
Recommends: libgnomevfs2-0 but it is not going to be installed
openssh-client : Depends: libssl1.0.0 (>= 1.0.1) but it is not going to be installed
openssh-server : Depends: libssl1.0.0 (>= 1.0.1) but it is not going to be installed
Depends: openssh-sftp-server but it is not going to be installed
Recommends: ssh-import-id but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
J'ai toutes les dernières mises à jour installées. J'ai exécuté apt-get -f install
. Je me suis assuré que tous les référentiels sont activés dans les sources de logiciels.
Qu'est-ce qui pourrait en être la cause ?
Mise à jour :
Voici le contenu de apt-cache policy libssl1.0.0
:
libssl1.0.0:
Installed: 1.0.1g-1ppa1~trusty1
Candidate: 1.0.1g-1ppa1~trusty1
Version table:
*** 1.0.1g-1ppa1~trusty1 0
100 /var/lib/dpkg/status
1.0.1f-1ubuntu2.1 0
500 http://ca.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
1.0.1f-1ubuntu2 0
500 http://ca.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
…et apt-cache policy libssl1.0.0:i386
:
libssl1.0.0:i386:
Installed: (none)
Candidate: 1.0.1f-1ubuntu2.1
Version table:
1.0.1f-1ubuntu2.1 0
500 http://ca.archive.ubuntu.com/ubuntu/ trusty-updates/main i386 Packages
500 http://security.ubuntu.com/ubuntu/ trusty-security/main i386 Packages
1.0.1f-1ubuntu2 0
500 http://ca.archive.ubuntu.com/ubuntu/ trusty/main i386 Packages
Réponse acceptée :
Ce type de message d'erreur indique généralement qu'un package en cours d'installation est en conflit avec d'autres packages installés et aurait forcé la suppression d'autres packages dépendants. Lors de l'installation du même package pour plusieurs architectures en même temps (voir MultiArch), amd64
et i386
dans ce cas, les versions des packages à installer doivent correspondre exactement .
Ce qui s'est probablement passé dans ce cas (confirmé par notre discussion dans les commentaires) est que libssl1.0.0
a été mis à niveau vers une version PPA plus récente que toute version disponible dans les référentiels Ubuntu. Si le PPA a ensuite été désactivé ou non configuré, les packages les plus récents restent normalement installés. Lisez cette question pour connaître la différence entre désactiver et purger un PPA. Cependant, si vous avez déjà supprimé le PPA de votre configuration apt, vous devrez rétrograder manuellement les packages qui ont été précédemment mis à niveau à partir du PPA.
Pour pouvoir installer libssl1.0.0:i386
, vous devez avoir la même version de libssl1.0.0:amd64
installé à partir du référentiel. Et parce que le openssl
source package construit plusieurs packages binaires associés, vous devez vous assurer que tous ses packages sont également sur la même version. Si vous ne spécifiez pas tous les packages que vous souhaitez rétrograder, apt préférera désinstaller plutôt que rétrograder. Dans ce cas, si vous avez libssl1.0.0
, libssl-dev
, et openssl
installé à partir d'un PPA, vous devriez
sudo apt-get install libssl1.0.0/trusty libssl-dev/trusty openssl/trusty
Répondez oui à apt-get
s'invite à propos de la rétrogradation des packages. Vous devriez maintenant pouvoir installer le libssl1.0.0:i386
package du référentiel.