由于“未满足的依赖项”而无法安装 libssl1.0.0:i386?

Nat*_*man 14 package-management apt dependencies

我已阅读并遵循此问题中的建议无济于事。我试图libssl1.0.0:i386在我的 14.04 机器 (amd64) 上安装,但是当我尝试通过 APT 执行此操作时,我收到以下错误消息:

nathan@nathan-desktop:~$ 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.
Run Code Online (Sandbox Code Playgroud)

我安装了所有最新的更新。我已经跑了apt-get -f install。我已确保在软件源中启用了所有存储库。

什么可能导致这种情况?


更新:

以下是内容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
Run Code Online (Sandbox Code Playgroud)

...和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
Run Code Online (Sandbox Code Playgroud)

小智 18

我正在使用 Ubuntu 20.04,以下步骤对我有用:

使用添加 18.04 的主存储库

echo "deb http://security.ubuntu.com/ubuntu bionic-security main" | sudo tee -a /etc/apt/sources.list.d/bionic.list
Run Code Online (Sandbox Code Playgroud)

更新存储库缓存并检查 libssl1.0-dev 现在是否可用。

sudo apt update
apt-cache policy libssl1.0-dev
Run Code Online (Sandbox Code Playgroud)

安装 libssl1.0-dev。

sudo apt-get install libssl1.0-dev 
Run Code Online (Sandbox Code Playgroud)


Mic*_*ler 9

这种错误消息通常表示正在安装的包与其他已安装的包冲突,并且会强制删除其他依赖包。同时为多个架构安装相同的包时(请参阅MultiArch),amd64以及i386在这种情况下,要安装的软件包的版本必须匹配准确

在这种情况下可能发生的事情(我们在评论中的讨论证实了这一点)是libssl1.0.0升级到比 Ubuntu 存储库中可用的任何版本都新的 PPA 版本。如果 PPA 后来被禁用或取消配置,较新的软件包通常会保持安装状态。阅读此问题以了解禁用和清除 PPA 之间的区别。但是,如果您已经从 apt 配置中删除了 PPA,则需要手动降级之前从 PPA 升级的软件包。

为了能够安装libssl1.0.0:i386,您必须libssl1.0.0:amd64从存储库安装相同版本的。并且由于openssl源包构建了多个相关的二进制包,因此您必须确保其所有包都在同一版本上。如果您没有指定要降级的所有软件包,apt 将更愿意卸载而不是降级。在这种情况下,如果你有libssl1.0.0libssl-dev以及openssl从PPA安装,你应该

sudo apt-get install libssl1.0.0/trusty libssl-dev/trusty openssl/trusty
Run Code Online (Sandbox Code Playgroud)

apt-get有关降级软件包的提示回答 yes 。您现在应该能够libssl1.0.0:i386从存储库安装包。