Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have read and followed the advice in this question to no avail. I am attempting to install libssl1.0.0:i386 on my 14.04 box (amd64), but when I try to do this via APT, I receive the following error message:

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.

I have all of the latest updates installed. I have run apt-get -f install. I have made sure that all repositories are enabled in Software Sources.

What could be causing this?


Update:

Here are the contents of 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

...and 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
share|improve this question
    
This could easily be due to a version mismatch for whatever reason. When installing multiarch packages, the versions must be identical. Have you run sudo apt-get update to ensure your package lists are up to date? What do apt-cache policy libssl1.0.0 and apt-cache policy libssl1.0.0:i386 show? –  mtmiller May 7 at 5:27
    
If you don't have openjdk = 7u55 and libssl = 1.0.1 than for whatever reason you don't in fact have the latest updates. Do you indeed have held packages as suggested? These 2 versions are the latest critical security updates and break earlier versions. –  chaskes May 7 at 5:30
    
@mtmiller: I've added the output of the last two. I'm noticing something unusual in the first one. –  Nathan Osman May 7 at 5:30
    
You have ppa's instead of the standard package for libssl. Can the 386 version be on a different version? If not, there's the problem. –  chaskes May 7 at 5:31
    
Yeah, that's what I just noticed too. But the only two .list files I have in /etc/apt/sources.list.d are for Google Web Designer and Google Music Manager. Shouldn't PPAs show up in that directory? –  Nathan Osman May 7 at 5:34

1 Answer 1

up vote 3 down vote accepted

This kind of error message usually indicates that a package is being installed that conflicts with other installed packages and would have forced removal of other dependent packages. When installing the same package for more than one architecture at the same time (see MultiArch), amd64 and i386 in this case, the versions of the packages to be installed must match exactly.

What likely happened in this case (confirmed by our discussion in the comments) is that libssl1.0.0 was upgraded to a PPA version that is newer than any version available from the Ubuntu repositories. If the PPA was later disabled or unconfigured, the newer packages normally remain installed. Read this question for the difference between disabling and purging a PPA. However, if you've already removed the PPA from your apt configuration, you'll need to manually downgrade the packages that were previously upgraded from the PPA.

To be able to install libssl1.0.0:i386, you must have the same version of libssl1.0.0:amd64 installed from the repository. And because the openssl source package builds multiple related binary packages, you have to ensure that all of its packages are also on the same version. If you don't specify all packages you want to downgrade, apt will prefer to uninstall rather than downgrade. In this case, if you have libssl1.0.0, libssl-dev, and openssl installed from a PPA, you should

sudo apt-get install libssl1.0.0/trusty libssl-dev/trusty openssl/trusty

Answer yes to apt-get's prompt about downgrading the packages. You should now be able to install the libssl1.0.0:i386 package from the repository.

share|improve this answer
    
Glad to see you answered. I was just about to suggest you turn your comments into an answer. :) –  chaskes May 7 at 18:06

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.