16

I'm trying to install a rpm and get following error:

---> Package geramer-server.x86_64 0:3.6.0.117-1 will be an update
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: geramer-server-3.6.0.117-1.x86_64
---> Package geramer-ui.x86_64 0:3.6.0.98-1 will be updated
---> Package geramer-ui.x86_64 0:3.6.0.117-1 will be an update
--> Finished Dependency Resolution
Error: Package: geramer-server-3.6.0.117-1.x86_64 (/geramer-server-3.6.0.117.x86_64)
           Requires: libcrypto.so.10(libcrypto.so.10)(64bit)

My first thought was that libcrypto.so is not installed. But this is not the case, see:

$ ldconfig -p | grep libcrypto.so
    libcrypto.so.10 (libc6,x86-64) => /usr/lib64/libcrypto.so.10

It also exists on disk:

$ ls -l /usr/lib64/libcrypto.so.10
lrwxrwxrwx 1 root root 18 Dec  4 13:11 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.0

And also RPM knows about it:

$ yum whatprovides "*/libcrypto.so.10"
Loaded plugins: product-id, rhnplugin, subscription-manager
*Note* Red Hat Network repositories are not listed below. You must run this command as root to access RHN repositories.
openssl-1.0.0-25.el6_3.1.x86_64 : A general purpose cryptography library with TLS implementation
Repo        : installed
Matched from:
Filename    : /usr/lib64/libcrypto.so.10

So any ideas what I'm missing?

Regards, Andi

Andi
  • 650
  • 2
  • 8
  • 22
  • 1
    And what `rpm -q --provides openssl | grep libcrypto.so.10` tells? – divanov Dec 14 '13 at 08:47
  • Please, provide the full error message of yum, and specify the distro in the tags to the question. – abyss.7 Dec 14 '13 at 14:11
  • @abyss: Distribution is RHEL 6.0, you can see that from openssl package name. However, geramer-server is something, not part of RHEL distribution and seems to be not even open source software. – divanov Dec 15 '13 at 12:06
  • @divanov RPM says the same as yum: `$ sudo rpm -q --provides openssl | grep libcrypto.so.10 libcrypto.so.10()(64bit)` – Andi Dec 16 '13 at 05:55

7 Answers7

10

I know this thread is kinda old, but I ran into this problem recently, and wanted to share what I did to fix it, especially since @divanov's answer helped me debug the issue.

In my case, I was unable to install a particular postgres rpm (postgresql91), and was seeing the same error:

Error: Package: postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64 (/postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64)
           Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64 (/postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64)
           Requires: libssl.so.10(libssl.so.10)(64bit)

Basically, I was able to fix the problem by upgrading the version of openssl that was installed. At the time of this writing, openssl-1.0.1e-15 is available in the CentOS (6) repository, here: openssl-1.0.1e-15.el6.x86_64.rpm and provides the libssl and libcrypto dependencies that were previously missing.
To install, you can:

sudo yum install http://mirror.centos.org/centos/6/os/x86_64/Packages/openssl-1.0.1e-15.el6.x86_64.rpm

Again, if the version in the CentOS repo changes, that URL may no longer be valid.

Ok, now for the gory details...

Originally, my machine had openssl-1.0.0-27.el6_4.2.x86_64.rpm installed, which didn't provide all of the packages my postgres rpm was requiring:

> rpm -q --provides openssl
config(openssl) = 1.0.0-27.el6_4.2
...
libcrypto.so.10()(64bit)
...  
libssl.so.10()(64bit)  
...

After installing the newer openssl version:

> rpm -q --provides openssl
config(openssl) = 1.0.1e-16.el6_5.4
...
libcrypto.so.10()(64bit)  
libcrypto.so.10(OPENSSL_1.0.1)(64bit)  
libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)  
libcrypto.so.10(libcrypto.so.10)(64bit)  
...
libssl.so.10()(64bit)  
libssl.so.10(OPENSSL_1.0.1)(64bit)  
libssl.so.10(OPENSSL_1.0.1_EC)(64bit)  
libssl.so.10(libssl.so.10)(64bit)  
...

And all are happy now...

Bottom line, install a newer version of openssl and it should provide the dependencies you need. Good Luck!

scott
  • 1,003
  • 9
  • 7
7

Dependencies have module names, which are listed in parenthesis to prevent collisions between packages. However, openssl in RHEL or openssl-libs on Fedora provide libcrypto.so.10 with four different module names for two architectures:

$ rpm -q --provides openssl-libs | grep libcrypto.so.10
libcrypto.so.10()(64bit)
libcrypto.so.10(OPENSSL_1.0.1)(64bit)
libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
libcrypto.so.10
libcrypto.so.10(OPENSSL_1.0.1)
libcrypto.so.10(OPENSSL_1.0.1_EC)
libcrypto.so.10(libcrypto.so.10)

It seems to be the case for CentOS too, which is RHEL based.

In your case, openssl seems to provide only libcrypto.so.10 without any module name, making geramer-server believe that dependency is missing as it requires libcrypto.so.10 from module libcrypto.so.10.

divanov
  • 6,173
  • 3
  • 32
  • 51
  • Thanks for pointing this out! What I still don't understand: after manually first installing openssl-devel I was able to install the software. Why wasn't yum able to resolve this on its own? – Andi Dec 17 '13 at 06:42
  • I still don't know for sure, but it occurs to me that your system has a screwed installation. I would do `sudo yum reinstall openssl` to see if that fixes it's dependency advertisement. openssl-devel should not bring any extra dependencies, except of development package. – divanov Dec 17 '13 at 07:05
  • 4
    If this is the problem, what is the solution? – ajon Feb 03 '14 at 05:51
  • Do you experience similar kind of problem? – divanov Feb 03 '14 at 06:02
  • 2
    If this isn't solved yet, I'd uncheck it. However, the `sudo yum reinstall openssl` did not work for me. I am still receiving the same errors about missing libraries. – FilBot3 May 22 '14 at 16:28
  • What is your distribution and exact version of openssl package? – divanov May 22 '14 at 20:03
  • The only solution would be to have rpm skip broken dependencies in this case, but without skipping other (likely needing to be installed) dependencies. Is there such a way? Same issue happens trying to install node and npm from EPEL on CentOS 6.4 64-bit. Openssl 1.0.0.27 provides lib crypto.so.10() but the parenthetical is different. – Rob_vH Jan 13 '15 at 16:24
2

Download the proper rpm package from this link.

To be specific,

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-16.el7.x86_64.rpm
rpm -ivh openssl-libs-1.0.2k-16.el7.x86_64.rpm --force

And then yum install your package again.

MeadowMuffins
  • 507
  • 1
  • 5
  • 20
1

I was able to fix this by removing openssl from the exclude line in /etc/yum.conf. We have managed servers, so it was placed there by default. I then just ran a normal yum install of what I needed and it worked out fine.

Jordan
  • 31,971
  • 6
  • 56
  • 67
  • You had openssl marked as excluded in yum configuration. While Andi had it installed, but not advertising what it provides. I do not think this is the same problem. – divanov Feb 03 '14 at 06:02
  • 1
    Yeah, I know. But because I was getting the exact same error message, I wanted to point it out to future searchers. – Jordan Feb 03 '14 at 20:33
1

Try installing openssl and openssl-libs simultaneously with the following command for RHEL7 or CentOS 7:

sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-1.0.2k-8.el7.x86_64.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-8.el7.x86_64.rpm

As both openssl and openssl-libs requires each other as dependecies and running without sudo can arise conflict issues with older version.

0

I used yumdownloader to create a local copy of the openssl rpm. Then I used rpmrebuild with the -e -p PACKAGE flags to add the missing Provides and create a new rpm. Then installed that resultant artifact. Incrementing the Release also helped.

Toddius Zho
  • 624
  • 6
  • 12