LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Red Hat (https://www.linuxquestions.org/questions/red-hat-31/)
-   -   rpm failed dependency even though library is installed (https://www.linuxquestions.org/questions/red-hat-31/rpm-failed-dependency-even-though-library-is-installed-4175449075/)

hokie92grad 02-07-2013 04:48 PM

rpm failed dependency even though library is installed
 
I am attempting to install an rpm that I generated on a RHEL6.1 server. The rpm I created is just a standard jre 1.6.0_30 release that I want installed in a specific location on the target machine.

When I try to install the rpm (using either yum or rpm) I get a failed dependency:
error: Failed dependcies:
libodbc.so()(64bit) is needed by jre_1_6_0_30....
libodbcinst.so()(64bit) is needed by jre_1_6_0_30....

Both of these libraries are contained in the RHEL rpm
unixODBC-2.2.14-11.el6.x86_64
which is installed on both the machine that I am generating the rpm from and the machine that I am installing the rpm on.

I have tried several things so far, including uninstalling unixODBC and reinstalling it, installing both the 32 and 64 bit versions, ensuring that the exact same version is included on both the generating machine and the installing machine.

I have also extracted the rpm manually using rpm2cpio|cpio and run ldd on the library that depends on libodbc.so and ldd was able to find the correct version of the library.

I am at a loss as to why rpm/yum cannot find the dependency even though the library was installed using yum and that ldd can find the library using a manually extracted version of the jre.

Is there anything else that I can try, has anyone seen this behavior before?

unSpawn 02-07-2013 05:21 PM

Quote:

Originally Posted by hokie92grad (Post 4886563)
I am attempting to install an rpm that I generated on a RHEL6.1 server. The rpm I created is just a standard jre 1.6.0_30 release that I want installed in a specific location on the target machine.

Location alteration is not a valid reason in my book and neither would be a "repack". Why complicate things unnecessary when you can use relocation instead?


Quote:

Originally Posted by hokie92grad (Post 4886563)
Is there anything else that I can try, has anyone seen this behavior before?

I didn't see you try a 'rpm -i --nodeps'? Anyway, if you search around a bit you'll find it happened with all sorts of official Java packages as well. If you want to re-spec the thing see if post #4 here works for you: https://www.centos.org/modules/newbb...topic_id=12749.

kbp 02-07-2013 05:27 PM

When you created the package did you define the Requires or let rpmbuild automatically resolve them?

hokie92grad 02-08-2013 07:15 AM

Quote:

Originally Posted by unSpawn (Post 4886584)
Location alteration is not a valid reason in my book and neither would be a "repack". Why complicate things unnecessary when you can use relocation instead?

It's unfortunately the way we decided to CM certain software packages, and in order to maintain consistency with the install process that we have, I am following the same methodology. We could have CM'd the package as part of the OS install, but we decided to package all of the base build and runtime environment packages separately.

Quote:

Originally Posted by unSpawn (Post 4886584)
I didn't see you try a 'rpm -i --nodeps'?

I felt that would be cheating and working around a problem. Of course if it is an unresolvable "feature" then I will resort to that.

Quote:

Originally Posted by unSpawn (Post 4886584)
Anyway, if you search around a bit you'll find it happened with all sorts of official Java packages as well. If you want to re-spec the thing see if post #4 here works for you: https://www.centos.org/modules/newbb...topic_id=12749.

Quote:

Originally Posted by kbp (Post 4886587)
When you created the package did you define the Requires or let rpmbuild automatically resolve them?

I let rpmbuild automatically resolve the dependencies, it appears that post #4 from the centos topic says to turn off the auto resolve and manually add the requires for those libraries. What is it about the auto-resolver that would prevent the install from finding the libraries? Is there a "feature" in rpm that could be fixed, or is it more involved than that? Auto resolving is always much easier than manually setting dependencies.

unSpawn 02-08-2013 07:26 AM

Quote:

Originally Posted by hokie92grad (Post 4886985)
It's unfortunately the way we decided to CM certain software packages

Clear. Blisters, sitting on them and all that...


Quote:

Originally Posted by hokie92grad (Post 4886985)
What is it about the auto-resolver that would prevent the install from finding the libraries? Is there a "feature" in rpm that could be fixed, or is it more involved than that?

Debug the "auto-resolver" to determine its logic?


All times are GMT -5. The time now is 09:03 AM.