Description of problem: ruby193-v8 is interfering with RPM's default behavior for resolving a requires on mongodb. mongodb requires 'libv8.so.3' $ rpm -q --requires mongodb | grep v8 libv8.so.3()(64bit) yet during install of mongodb, RPM is seeing that 'ruby193-v8' provides this requirement, therefore the needed 'v8' package is not installed. Version-Release number of selected component (if applicable): ruby193-v8-3.10.8-7.el6_4.x86_64 How reproducible: Always Steps to Reproduce: 1. Start from a fresh rhel 6.4 install 2. yum install ruby193-v8 3. yum install mongodb-server Grab this from EPEL x86_64 or use this brew build https://brewweb.devel.redhat.com/buildinfo?buildID=271978 4. RPM should have resolved the requires on libv8.so.3 to 'v8' which installs this library in the default location for other packages. To go further and test mongo 1. Now start mongodb service mongod start 2. Look at /var/log/mongodb/mongodb.log Actual results: rpm -qa | grep v8 v8 is not installed and mongo fails to start $ cat /var/log/mongodb/mongodb.log /usr/bin/mongod: error while loading shared libraries: libv8.so.3: cannot open shared object file: No such file or directory Expected results: v8 package is installed and mongo starts Additional info:
Possible solution might be to prefix all libraries by prefix same as the package has, for example postgresql has libpg.so.postgresql92-x.y.z. I'm not sure if it's wise to prefix all libraries or do it automatically for all libraries in scl tool during build. Anyway at this point I do not want to see rebuild of whole collections. I guess it's too late for such change of policy.
In mongodb case it might be fixed by adding Requires: nodejs010-v8. Does is work for you?
(In reply to Marcela Mašláňová from comment #3) > In mongodb case it might be fixed by adding Requires: nodejs010-v8. Does is > work for you? I don't think it will work, since non-SCL mongodb needs non-SCL v8 library, so I'd say something like Requires: nodejs010-v8 is needed. Just my 2 cents, not tested nor deeply analysed.
(In reply to Honza Horak from comment #5) > I don't think it will work, since non-SCL mongodb needs non-SCL v8 library, > so I'd say something like Requires: nodejs010-v8 is needed. Just my 2 cents, > not tested nor deeply analysed. I wanted to suggest "Requires: v8", the above was the same what Marcela suggested (copy/paste mistake)
The best approach would be prefix also libraries (#971595).
(In reply to Marcela Mašláňová from comment #7) > The best approach would be prefix also libraries (#971595). That should probably be this one: bug #996025
Until bug #996025 is completed, I have implemented a workaround for mongodb. All of the SCL v8 packages provide ruby193-v8 or nodejs010-v8. I have added "Requires: v8" to the mongodb spec file. This has worked in all my testing using the SCL and non-SCL enviroments.
We plan to fix this issue by changing version of shared objects. From libv8.so.3()(64bit) it will be libv8.so.nodejs010-3()(64bit).
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHEA-2014-0607.html