Přečetl jsem si a řídil se radami v této otázce bez úspěchu. Pokouším se nainstalovat libssl1.0.0:i386
na mém boxu 14.04 (amd64), ale když to zkusím udělat přes APT, zobrazí se mi následující chybová zpráva:
[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.
Mám nainstalované všechny nejnovější aktualizace. Spustil jsem apt-get -f install
. Ujistil jsem se, že všechna úložiště jsou povolena ve Zdrojích softwaru.
Co to může způsobovat?
Aktualizace:
Zde je obsah 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
…a 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
Přijatá odpověď:
Tento druh chybové zprávy obvykle označuje, že se instaluje balíček, který je v konfliktu s jinými nainstalovanými balíčky, a proto by bylo nutné odstranit další závislé balíčky. Při instalaci stejného balíčku pro více než jednu architekturu současně (viz MultiArch), amd64
a i386
v tomto případě se verze balíčků, které se mají nainstalovat, musí shodovat přesně .
V tomto případě se pravděpodobně stalo (potvrzeno naší diskusí v komentářích), že libssl1.0.0
byl upgradován na verzi PPA, která je novější než jakákoli verze dostupná z repozitářů Ubuntu. Pokud byl PPA později deaktivován nebo zkonfigurován, novější balíčky obvykle zůstanou nainstalovány. Přečtěte si tuto otázku o rozdílu mezi deaktivací a vyčištěním PPA. Pokud jste však již PPA z konfigurace apt odstranili, budete muset ručně downgradovat balíčky, které byly dříve upgradovány z PPA.
Aby bylo možné nainstalovat libssl1.0.0:i386
, musíte mít stejnou verzi libssl1.0.0:amd64
nainstalované z úložiště. A protože openssl
zdrojový balíček vytváří několik souvisejících binárních balíčků, musíte zajistit, aby všechny jeho balíčky byly také ve stejné verzi. Pokud neurčíte všechny balíčky, které chcete downgradovat, apt upřednostní odinstalaci než downgrade. V tomto případě, pokud máte libssl1.0.0
, libssl-dev
a openssl
nainstalován z PPA, měli byste
sudo apt-get install libssl1.0.0/trusty libssl-dev/trusty openssl/trusty
Odpovězte ano na apt-get
je výzva ke snížení verze balíčků. Nyní byste měli být schopni nainstalovat libssl1.0.0:i386
balíček z úložiště.