no version information available

為{幸葍}努か 提交于 2019-11-30 01:21:27

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

I was also getting that annoying warning message after compiling and installing the latest version of openssl from source (openssl-1.0.1f). After some research along with some trial and error, I was able to fix the issue for my particular scenario. It basically came down to exactly what the warning message says. There is no version information available in the libraries that were built from source. That is something that the Ubuntu team has added in their distribution. So, the solution is to recompile your openssl source after patching it with the version script that is included in the Ubuntu package distribution for openssl.

I Google'd for "patch openssl to contain version info for ubuntu" and happened to find the source package I need at https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.1f-1ubuntu1.debian.tar.gz.

So, here's the process I followed:

rm -r -f -v openssl-1.0.1f (just to make sure you start fresh)
wget http://www.openssl.org/source/openssl-1.0.1f.tar.gz
tar -xvf openssl-1.0.1f.tar.gz
wget https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.1f-1ubuntu1.debian.tar.gz
tar -xvf openssl_1.0.1f-1ubuntu1.debian.tar.gz
mv debian openssl_1.0.1f-1ubuntu1 (just because that's what I did)
cd openssl-1.0.1f/
patch -p1 < ../openssl_1.0.1f-1ubuntu1/patches/version-script.patch
./config
make
make test
sudo make install

Now, the error message should be gone.

It's worth mentioning that initially I patched my openssl-1.0.1f source with the version script included in the original source package from http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.1-4ubuntu5.11.debian.tar.gz. But, my make was failing with an error. I guess it makes sense that I needed to get the same version 1.0.1f.

Credit goes to @mattcasw for his post http://ubuntuforums.org/showthread.php?t=1905963 which led me down the right path.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!