install openssl-devel on ec2

Josh Moore asked:

I am trying to install openssl-devel on a 64bit linux instance on ec2. However, when I try to install it sudo yum install openssl-devel I get this error:

Error: Package: openssl-devel-1.0.0g-1.26.amzn1.x86_64 (amzn-updates)
       Requires: openssl = 1.0.0g-1.26.amzn1
       Installed: openssl-1.0.0i-1.41.amzn1.i686 (@amzn-updates/latest)
           openssl = 1.0.0i-1.41.amzn1
       Available: openssl-1.0.0a-10.13.amzn1.i686 (amzn-main)
           openssl = 1.0.0a-10.13.amzn1
       Available: openssl-1.0.0e-2.16.amzn1.i686 (amzn-updates)
           openssl = 1.0.0e-2.16.amzn1
       Available: openssl-1.0.0g-1.26.amzn1.i686 (amzn-updates)
           openssl = 1.0.0g-1.26.amzn1

But, when I try to install openssl-1.0.0g-1.26.amzn1 I get this response:

Setting up Install Process
Package matching openssl-1.0.0g-1.26.amzn1.x86_64 already installed. Checking for update.
Nothing to do

The version of openSSL installed (1.0.0i-1.41.amzn1) will not let me change to the version I need that will allow me to install openssl-devel. Any ideas on how to change the installed version or install a compatible openssl-devel?

My answer:

You have both x86_64 and i686 versions of openssl installed, but they have different versions. Yum gets very confused when this happens.

To fix this, you need to get both versions in sync, or remove (and maybe reinstall, if needed) one of them.

Option 1: Sync

Updating should get your system into a reasonably sane state:

yum update

Install the package you really wanted:

yum install openssl-devel

If this fails, move on to…

Option 2: Remove and reinstall

Remove the offending package:

rpm --nodeps -e openssl.i686

Install the package you really wanted:

yum install openssl-devel

Install the previously removed package:

yum install openssl

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.