zypper libcrypto.so.0.9.8 => not found ?!

I have two machines that have OpenSuSE 11.3 (64-bit) loaded on them.

On one machine zypper stopped working yesterday, on the other zypper works fine.

Both machines are being updated with patches 4 times per day via zypper via…
(zypper --non-interactive refresh; zypper --non-interactive update --auto-agree-with-licenses --skip-interactive )

Here is what I have…

which zypper

/usr/bin/zypper

Both machines have the file /usr/bin/zypper which has the same md5 signature on both machines…
a91b6a3cfbee351f962de8190281b1ff /usr/bin/zypper

The directory information on both files looks exactly the same…
-rwxr-xr-x 1 root root 1506752 2010-11-16 19:41 /usr/bin/zypper

However, on one of the machines zypper does not run but gives the error…

zypper

zypper: error while loading shared libraries: libcrypto.so.0.9.8: cannot open shared object file: No such file or directory

I did a ‘ldd’ on both zypper files. On the machine where zypper works the output is…

ldd which zypper

linux-vdso.so.1 =>  (0x00007fff3c74e000)
libzypp.so.706 => /usr/lib64/libzypp.so.706 (0x00007f477d08c000)
libreadline.so.6 => /lib64/libreadline.so.6 (0x00007f477ce45000)
libaugeas.so.0 => /usr/lib64/libaugeas.so.0 (0x00007f477cc0b000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f477c901000)
libm.so.6 => /lib64/libm.so.6 (0x00007f477c6aa000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f477c494000)
libc.so.6 => /lib64/libc.so.6 (0x00007f477c134000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f477bf17000)
librt.so.1 => /lib64/librt.so.1 (0x00007f477bd0e000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f477bb0b000)
librpm.so.1 => /usr/lib64/librpm.so.1 (0x00007f477b7cb000)
libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00007f477b575000)
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f477b21f000)
libz.so.1 => /lib64/libz.so.1 (0x00007f477b009000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f477addf000)
libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007f477aa30000)
libudev.so.0 => /lib64/libudev.so.0 (0x00007f477a822000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f477a5cd000)
libfa.so.1 => /usr/lib64/libfa.so.1 (0x00007f477a3c0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f477d743000)
librpmio.so.1 => /usr/lib64/librpmio.so.1 (0x00007f477a16c000)
liblua.so.5.1 => /usr/lib64/liblua.so.5.1 (0x00007f4779f3b000)
libpopt.so.0 => /lib64/libpopt.so.0 (0x00007f4779d31000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4779b12000)
libidn.so.11 => /usr/lib64/libidn.so.11 (0x00007f47798df000)
libldap-2.4.so.2 => /usr/lib64/libldap-2.4.so.2 (0x00007f4779698000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00007f4779462000)
libssl.so.1.0.0 => /lib64/libssl.so.1.0.0 (0x00007f4779206000)
libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x00007f4778fdf000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f4778ddb000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f4778bcc000)
libelf.so.1 => /usr/lib64/libelf.so.1 (0x00007f47789b7000)
liblzma.so.0 => /lib64/liblzma.so.0 (0x00007f4778795000)
liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2 (0x00007f4778586000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f477836f000)
libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00007f4778154000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00007f4777e89000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00007f4777c62000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f4777a5e000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00007f4777855000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f4777652000)

On the machine where zypper does NOT work the output is…

ldd which zypper

linux-vdso.so.1 =>  (0x00007fffd5111000)
libzypp.so.706 => /usr/lib64/libzypp.so.706 (0x00007fd385686000)
libreadline.so.6 => /lib64/libreadline.so.6 (0x00007fd38543f000)
libaugeas.so.0 => /usr/lib64/libaugeas.so.0 (0x00007fd385205000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fd384efb000)
libm.so.6 => /lib64/libm.so.6 (0x00007fd384ca4000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fd384a8e000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd38472e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd384511000)
librt.so.1 => /lib64/librt.so.1 (0x00007fd384308000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007fd384105000)
librpm.so.1 => /usr/lib64/librpm.so.1 (0x00007fd383dc5000)
libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00007fd383b6f000)
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fd383819000)
libz.so.1 => /lib64/libz.so.1 (0x00007fd383603000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fd3833d9000)
libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007fd38302a000)
libudev.so.0 => /lib64/libudev.so.0 (0x00007fd382e1c000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00007fd382bc7000)
libfa.so.1 => /usr/lib64/libfa.so.1 (0x00007fd3829ba000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd385d3d000)
librpmio.so.1 => /usr/lib64/librpmio.so.1 (0x00007fd382766000)
liblua.so.5.1 => /usr/lib64/liblua.so.5.1 (0x00007fd382535000)
libpopt.so.0 => /lib64/libpopt.so.0 (0x00007fd38232b000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fd38210c000)
libidn.so.11 => /usr/lib64/libidn.so.11 (0x00007fd381ed9000)
libldap-2.4.so.2 => /usr/lib64/libldap-2.4.so.2 (0x00007fd381c92000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00007fd381a5c000)
libssl.so.1.0.0 => /lib64/libssl.so.1.0.0 (0x00007fd381800000)
libssh2.so.1 => /lib64/libssh2.so.1 (0x00007fd385e18000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fd3815fc000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fd3813ed000)
libelf.so.1 => /usr/lib64/libelf.so.1 (0x00007fd3811d8000)
liblzma.so.0 => /lib64/liblzma.so.0 (0x00007fd380fb6000)
liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2 (0x00007fd380da7000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fd380b90000)
libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00007fd380975000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00007fd3806aa000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00007fd380483000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fd38027f000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00007fd380076000)
libcrypto.so.0.9.8 => not found
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fd37fe73000)

In both cases they appear to be the same with the exception of the additional libcrypto on the machine that does not work. Interestingly enough the ldd of the one that does NOT work has references to two libcrypto’s.

I also did an ‘md5sum’ on all of the libraries above on both of the machines and found that the md5s of all libraries on both machines are the same.

Can someone please let me know what has happened. Could it be that a zypper package install did not complete on the one machine, and I need to run “ldconfig” as root on the machine that is broken?? Is there another problem???

Thank you so much!

Charles

Is GoogleEarth installed on either one of them?

No. They are both servers with minimal X-11. There are NO toolkits like gtk+ installed.

It is also the case that yast2 does not work. I looked at the log. If it matters to anyone I will post it.

Any hint of what might be going on here would be greatly appreciated.

Again both machines are 64-bit opensuse 11.3, both zypper binaries have the same md5s, all of the shared objects also have the same md5s. ldd shows one extra ‘missing’ shared library. It’s curious that the library that it shows missing is a 32-bit library. But clearly all other libraries are 64-bit.

Can someone suggest a better forum to post something like this on?

Thank you much in advance.

Chuck

Since yast2 no longer works on one of these machines, I looked at the y2log. The logs are the same until this point…

Machine where it works…
2011-08-11 12:58:33 <1> crisma2(15971) [Pkg] PkgModule.cc(instance):68 Redirecting ZYPP log to y2log

Machine where it does not work…
2011-08-11 12:25:54 <3> crisma3(15227) [liby2] Y2PluginComponent.cc(loadPlugin):239 error loading plugin /usr/lib64
/YaST2/plugin/libpy2Pkg.so.2: libcrypto.so.0.9.8: cannot open shared object file: No such file or directory
2011-08-11 12:25:54 <3> crisma3(15227) [liby2] Y2PluginComponent.cc(loadPlugin):239 error loading plugin /usr/lib64
/YaST2/plugin/libpy2Pkg.so.2: libcrypto.so.0.9.8: cannot open shared object file: No such file or directory
2011-08-11 12:25:54 <3> crisma3(15227) [Interpreter] clients/sw_single.ycp:25 Loading module ‘Pkg’ failed
2011-08-11 12:25:54 <3> crisma3(15227) [libycp] Import.cc(import):97 No matching component found
2011-08-11 12:25:54 <3> crisma3(15227) [Interpreter] clients/sw_single.ycp:25 Import ‘Pkg’ failed…
2011-08-11 12:25:54 <3> crisma3(15227) [Interpreter] clients/sw_single.ycp:25 Could not create its namespace
2011-08-11 12:25:54 <3> crisma3(15227) [libycp] Bytecode.cc(readFile):1161 Caught invalid bytecode in ‘/usr/share/Y
aST2/modules/PackageCallbacks.ybc’
2011-08-11 12:25:54 <3> crisma3(15227) [Interpreter] clients/sw_single.ycp:25 Loading module ‘PackageCallbacks’ fai
led
2011-08-11 12:25:54 <3> crisma3(15227) [Parser] clients/sw_single.ycp:25 Can’t load module ‘PackageCallbacks’.

For “/usr/lib64/YaST2/plugin/libpy2Pkg.so.2”, the md5s are the same on both machines, and “ldd” of both showed one additional “not found” shared object libcrypto.so.0.9.8’ on the one that did not work. Otherwise all shared objects were the same.

Somehow, the 64-bit version of “libcrypto.so.0.9.8” got uninstalled. I did a…

wget http://download.opensuse.org/update/11.3/rpm/x86_64/libopenssl0_9_8-0.9.8m-3.3.2.x86_64.rpm

rpm -i libopenssl0_9_8-0.9.8m-3.3.2.x86_64.rpm

SuSEconfig

ldconfig

And it works again!

and so this works. However…

could someone please explain to me why two identical binaries on different machines would have identical shared library dependencies except for one additional library? My understanding was that programs are compiled and linked against specific shared objects. So this should not be?!

Thank you in advance!