LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (http://www.linuxquestions.org/questions/linux-software-2/)
-   -   Issues with libssl.so libcrypto.so (http://www.linuxquestions.org/questions/linux-software-2/issues-with-libssl-so-libcrypto-so-894274/)

ashesh0326 07-28-2011 06:55 AM

Issues with libssl.so libcrypto.so
 
Code:

/usr/bin/php: /usr/local/zend/lib/libssl.so.0.9.8: no version information available (required by /usr/bin/php)
/usr/bin/php: /usr/local/zend/lib/libcrypto.so.0.9.8: no version information available (required by /usr/bin/php)

Hi guys. I recently installed zend-framework and zend-server on my office desktop and ever since, I've been getting the above warning messages everytime I hit the tab for autocomplete on the shell (especially when using git) or when I run any random PHP file as script. Moreover, this problem breaks some stuff at times, for example, git GUI never works for me. And getting this warning everytime is downright annoying as well.

From the looks of it, the Zend installation somehow messed up my linkages. I'd like to know how to fix this. Any help?

Thanks in advance.

sundialsvcs 07-28-2011 08:12 AM

Start with, as root: /sbin/ldconfig.

This will rebuild the "loader cache" file, which is what the loader uses to resolve requests for various library-names to a direct reference to the appropriate file. (Basically, it searches for everything all at once and caches the result of that search.) This should have happened as part of any library update, but maybe it didn't.

Unfortunately you also must verify that the crypto (and other?) libraries on your system have not been compromised. If the message vanishes after doing "ldconfig," it is reasonable to presume (absent other indications of malfeasance) that they have not.

barunparichha 07-28-2011 09:26 AM

Please have a look into these points too:

1. If /usr/local/zend/lib/libssl.so.0.9.8 file exists.
2. nm /usr/local/zend/lib/libssl.so.0.9.8 (To check if library is proper)
3. In your Makefile you must be using libssl.so. Check if this file points to /usr/local/zend/lib/libssl.so.0.9.8

ashesh0326 07-29-2011 05:51 AM

Quote:

Originally Posted by sundialsvcs (Post 4427608)
Start with, as root: /sbin/ldconfig.

This will rebuild the "loader cache" file, which is what the loader uses to resolve requests for various library-names to a direct reference to the appropriate file. (Basically, it searches for everything all at once and caches the result of that search.) This should have happened as part of any library update, but maybe it didn't.

Unfortunately you also must verify that the crypto (and other?) libraries on your system have not been compromised. If the message vanishes after doing "ldconfig," it is reasonable to presume (absent other indications of malfeasance) that they have not.

sudo ldconfig worked like a charm, thanks. Though it doesn't seem to suppress the libcrypto warning, any clues about that?

sundialsvcs 07-29-2011 08:11 AM

Quote:

Originally Posted by ashesh0326 (Post 4428375)
sudo ldconfig worked like a charm, thanks. Though it doesn't seem to suppress the libcrypto warning, any clues about that?

If it did not suppress the warning, then you have a little detective-work to do. So, put on your gumshoe hat and get to work.   Some of the things you need to consider are:
  • Do the libraries that you see here, actually exist on this computer? What other versions also exist? Are the libraries in the same places? Are the libraries that you are looking for, in the right place(s)?
  • Where is the demand for this particular library version coming from? Is it demanding the right thing? What's causing it to demand this version rather than, say, that one?

You get the idea. You're diagnosing a problem, and so there's no categorical way for anyone to tell you what the source of the problem might be. What you do know is that, either the software is asking for the wrong thing; or it's asking for the right thing but the right thing is not there; or, it's asking for the right thing, and the right thing is there, but it can't find it. (Or one last possibility: that it's finding it but it's somehow improperly-installed and therefore it can't load it.)

Happy sleuthing!

ashesh0326 08-03-2011 07:48 AM

Quote:

Originally Posted by sundialsvcs (Post 4428460)
If it did not suppress the warning, then you have a little detective-work to do.   So, put on your gumshoe hat and get to work.   Some of the things you need to consider are:
  • Do the libraries that you see here, actually exist on this computer? What other versions also exist? Are the libraries in the same places? Are the libraries that you are looking for, in the right place(s)?
  • Where is the demand for this particular library version coming from? Is it demanding the right thing? What's causing it to demand this version rather than, say, that one?

You get the idea. You're diagnosing a problem, and so there's no categorical way for anyone to tell you what the source of the problem might be. What you do know is that, either the software is asking for the wrong thing; or it's asking for the right thing but the right thing is not there; or, it's asking for the right thing, and the right thing is there, but it can't find it. (Or one last possibility: that it's finding it but it's somehow improperly-installed and therefore it can't load it.)

Happy sleuthing!


Actually, that didn't work. It's still making life miserable for me, autocomplete has been rendered more or less unusable now.

I'm surprised that it didn't work. I think I'll have to rebuild the files, or maybe the system is pointing to a different file altogether which doesn't contain the version information.

And since the system now points to files inside the Zend folder, I'm assuming that it was the Zend installation that wrecked my system. Poor on Zend's part.

ashesh0326 08-08-2011 08:40 AM

Bump.

This is causing major system problems. I'm unable to start nautilus, for example. Can anyone please help me rebuild these linkages? Looks like there is no other option but to reinstall.

sundialsvcs 08-09-2011 05:19 PM

Nonsense! Put on your gumshoes and figure out what's wrong! "Reinstalling" might not solve anything whatsoever. (And besides, it's what "Windows weenies" do ... ;) )

John VV 08-09-2011 07:13 PM

libssl.so and libcrypto.so are two important system files

and are in /lib

now having a DIFFERENT copies of these in "/usr/local/zend/lib/" would cause some problems
the SYSTEM copy in /lib is read into the OS FIRST and used
the different one in /usr/local/zend/lib is never even read nor seen by the OS
now YOU ran ld on the copies in /usr/local/zend so the OS is NOW using those over the default -- that will cause problems

there is a few ways around that
rebuilt the program and point it to the different versions - best way

or
use a OS that uses that explicit version and never update ( not recommend)


i ran into a similar problem running a MUST use program on fedora 11
i ended up on cent5
now running sl6 WITH a like problem the
the program is looking for libcrypto.so.0.9.8 when the OS has libcrypto.so.1.0
make a link from 1.0 to 0.9.8 fixed it

sundialsvcs 08-09-2011 07:46 PM

/me nods...

If you have more than one copy of this library on your system, then that's pretty much a dead giveaway that there will be sea monsters in the waters that you are about to navigate. (To find out if this might be the case, first run /sbin/updatedb as root, then locate the libraries in question.)

When almost any Linux program runs, it will specify a list of libraries that it needs ... and it will expect the system to be able to furnish suitable copies of those libraries "on the fly." (In the Microsoft Windows environment, such libraries are called "DLLs.") Linux has a rather clever and rather sophisticated way of being able to resolve those requirements ... a system that (decidedly unlike Microsoft Windoze...) can support having multiple versions of the same library on the same system at the same time.

The linchpin to this system is "the loader library cache," which you can begin to get a grip on by reading man ldconfig and man ld. Because it would be too expensive to have to search for these libraries every time a program needed to be loaded, the loader (ld) expects the necessary information to be pre-computed in advance (by ldconfig). Without straying too far from our present topic, let's agree to say that "instead of looking for libraries by 'file names,' programs can look for them by 'keys' which are, thanks to the magic of the cache-file, resolved to 'file names.' (Let's just agree, shall we, to leave it at that...)

In short: When the rubber finally hits the road, it doesn't matter if a particular file exists. What matters is, whether or not it's in the loader cache file, and therefore, whether the contents of that file are current. (Hence /sbin/ldconfig, and all the various and wonderful configuration files that are associated with it...)

"Linux." It's weird. It's wonderful. It works. :)


All times are GMT -5. The time now is 10:04 AM.