Re: a dependency is not being detected?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/02/10 16:34, Fulko Hew wrote:


On Wed, Feb 10, 2010 at 10:57 AM, Seth Vidal <skvidal@xxxxxxxxxxxxxxxxx
<mailto:skvidal@xxxxxxxxxxxxxxxxx>> wrote:

    On Wed, 10 Feb 2010, Fulko Hew wrote:

        I've been perplexed by yum....

        I have a package (rpm) I've created.  One if its dependencies is
        'perl-SNMP-Session'. When I build my package the process reports
        (trimmed for brevity):

        Requires: /bin/sh /usr/bin/perl bash chkconfig coreutils grep
        initscripts mysql-server perl >= 0:5.002 perl(AutoLoader)
        ...
        perl(SNMP_Session)
        ...

        To install, I use: 'yum install --nogpgcheck MyPackage.rpm'

        On Fedora boxes (example F12) it detects the missing dependency
        and also installs perl-SNMP-Session, but on an RHEL 5.4 box it
        doesn't report the missing dependency.

        Note: The RHEL 5.4 box does have the mrtg package installed,
        and that package has a copy of the relevant files I need,
        (but the mrtg package doesn't install them into a location that
        Perl can find.)

        # rpm -qa --filesbypkg | grep SNMP_Session
        mrtg     /usr/lib/mrtg2/SNMP_Session.pm

        Using the 'verbose' flag during yum install, it says:

        looking for ('perl(SNMP_Session)', None, (None, None, None)) as
        a requirement of MyPackage.noarch 0-1.0-5 u

        but: 'yum list "*SNMP_Session*"' reports it as 'available',
        _not_ 'installed':

        Available Packages:
        perl-SNMP_Session.noarch     1.12-3.el5.1    epl

        So the question is...
        if its not installed, why isn't it being required/found as a
        missing dependency?


    run:
    rpm -qR mypackage.rpm

    b/c I suspect the things providing perl(SNMP_Session) are different
    on el5 than on f12.


Running the above command (without the .rpm extension) results in a list
that contains the 'perl(SNMP_Session)'

-------
What I think is different is: on el5, the mrtg package was installed,
and on my f12 I didn't.

Pursuing it  further on el5... when I ran yum deplist MyPackage I see:

...
dependency: perl(SNMP_Session)
   provider: perl-SNMP_session.noarch 1.12-3.el5.1
   provider mrtg.i386 2.14.5-2

... that led me to look at mrtg with:
rpm -q --provides mrtg

and it reports amongst other things:

perl(SNMP_Session)

so it seems to me that, the _other_ package (mrtg) is reporting
that it is 'providing' a resolvable resource, that other packages
should be able to use (even though they only have a private
copy in a private location)

... and that is telling yum, that what _I_ need 'should' be installed
because
mrtg is telling it so... incorrectly.

I would think the 'correct' answer would be to 'fix' mrtg so that
it doesn't tell yum/rpm that it is providing something that
others can't find/use.

http://bugzilla.redhat.com/247113

Fixed in Fedora but not yet it seems in RHEL 5.

I tested this by erasing the mrtg package and re-installing MyPackage...
... still no joy, because yum knows perl-SNMP-Session can be resolved
by either mrtg or perl-SNMP_Session (as shown above) and it still
picked mrtg as the way to go.

My only recourse (at the moment) seems to be to manually install
perl-SNMP-Session first, and then MyPackage.

Comments?

Your problematic dependency appears to be on perl(SNMP_Session), not perl-SNMP_session. Both mrtg and perl-SNMP_session "provide" perl(SNMP_Session), which is what causes your problem. I suspect that the dependency of perl(SNMP_Session) in your package is added automatically by rpm at build time, or do you actually have "Requires: perl(SNMP_Session)" in your spec file?

My suggestion is to simply add:

Requires: perl-SNMP_session

to MyPackage.spec, rebuild it and see how that goes. This should work better since the package you want provides this, and mrtg doesn't.

Paul.
_______________________________________________
Yum mailing list
Yum@xxxxxxxxxxxxxxxxx
http://lists.baseurl.org/mailman/listinfo/yum

[Index of Archives]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux