no version information available

tanwedar picture tanwedar · Aug 22, 2013 · Viewed 28.1k times · Source

I'm using Ubuntu 12.04 - server and consistently getting:

/usr/lib/libcrypto.so.1.0.0: no version information available (required by /usr/lib/libpython2.7.so.1.0)

and

/usr/lib/libssl.so.1.0.0: no version information available (required by /usr/lib/libpython2.7.so.1.0)

error messages without any pattern for why. It can be something as simple as running vi.The files are there and they are not links.

This started happening a little after compiling and installing OpenLDAP, using the instructions from their site while learning the basics of the ldap server. I have removed openLDAP of course to try and remove the problem. I have also reinstalled OpenSSL and libssl1.0.0 to try and test that solution.

Any help will be greatly appreciated, google hasn't been useful unfortunately.

Answer

Mr. E. Dude picture Mr. E. Dude · Sep 12, 2014

I suppose I should get right to the point...

Problem: libssl.so.1.0.0 and libcrypto.so.1.0.0 no version information available warning/error.

I SOLVED IT!!! YAY!!! (Fireworks should be going off and stuff.)

After much research, time and effort, (took weeks), here's what I finally ended up doing...

In the directory where you ended up extracting the source code for your version of openssl 1.0.1h (Should work for other versions too.) I create a file called openssl.ld

In this file put this...

Answer

OPENSSL_1.0.0 {
    global:
    *;
};

save it. Now type in...

make clean (Just to be sure we are starting fresh.)

Now for the really mind boggling part...

./config --prefix=/usr/local --openssldir=/usr/local/openssl shared -Wl,--version-script=openssl.ld -Wl,-Bsymbolic-functions

Then...

make

make test

make install

ldconfig

And that should do it. (It's so simple. No patching required.)

I have applied this solution to Debian Wheezy both 32 and 64 bit versions. And have made an observation. The 64 bit version automatically defaults to the new libssl.so.1.0.0 and libcrypto.so.1.0.0 files that are created in the /usr/local/lib directory. The 32 bit version does not. Which is why I had thought at first that the 32 bit version of Debian Wheezy didn't suffer from this problem, but it does once you get the 32 bit version to use the new openssl libraries in the /usr/local/lib dir.

Using the ldd command to test what libraries the binaries are using was invaluable in figuring this out too.

Have a nice day.

Mr. E. Dude