[Yum] yum install using auto-dependency checking???

jeff stern jas at uci.edu
Tue Aug 30 15:12:23 UTC 2005


hi jim thanks for taking the time to respond..

Jim Perrin wrote:
> On 8/29/05, jeff stern <jas at uci.edu> wrote:
> 
>>hi, i am having the following problem with a dependency on some rpm's i
>>am building, and then am attempting to serve out with my own yum repository.
>>
>>i recompile all the latest php-* rpms for fedora core 4, and enable
>>ibase (rpmbuild --with ibase) so that the php-interbase~ rpm will be
>>created (support for connecting to interbase database servers using php).
>>
>>1) first problem: rpm cannot find my libgds.so file ..
>>
>>however, when i try to install these rpms using rpm itself,
>>php-interbase seems to require 'libgds.so' -- a dynamically linked
>>library supplied by Borland with the Linux interbase client software
>>(i.e., /opt/interbase/lib/libgds.so DOES exist on my system, when i
>>build the rpms, and of course, later, when i install. and
>>/opt/interbase/lib *IS* in my /etc/ld.so.conf file)..
>>
> 
> 
> It may be on your system, but does RPM know it's there? Did you use
> rpm to install interbase in opt?

well, i've tried it both ways. several times i built the rpms on a 
system which had the rpm from Borland (InterBaseC_LI-V7.1.0-1.i386.rpm). 
this rpm contained the libgds.so library file. the system(s) i installed 
the php-interbase rpm i'd made, also had this Borland rpm. they all had 
problems.

i also have just recently started doing it the other way (no rpm), 
because Borland has since come out with a newer version of their 
interbase client for linux (7.5), and with their newer version, they are 
not releasing it as an rpm -- instead, it's just a tarball with a 
shell-based install script.

in either case, i have the same problem. php-interbase cannot be 
installed -- even to the very same system the php-interbase was built on 
-- because of this dependency problem.

> If so, does rpm -q --filesbypkg interbase or whatever show this file?

yes, that's what's so bizarre. here is the output (from when i have the 
Borland rpm installed):

----------------------------------------------------------------------
# rpm -q --filesbypkg InterBaseC_LI
InterBaseC_LI             /opt/interbase
InterBaseC_LI             /opt/interbase/License.txt
InterBaseC_LI             /opt/interbase/ReleaseNotes.pdf
InterBaseC_LI             /opt/interbase/bin
InterBaseC_LI             /opt/interbase/bin/gbak
InterBaseC_LI             /opt/interbase/bin/gfix
InterBaseC_LI             /opt/interbase/bin/gpre
InterBaseC_LI             /opt/interbase/bin/iblicense
InterBaseC_LI             /opt/interbase/bin/ibnodeid
InterBaseC_LI             /opt/interbase/bin/isql
InterBaseC_LI             /opt/interbase/doc
InterBaseC_LI             /opt/interbase/doc/How2GetDocs.txt
InterBaseC_LI             /opt/interbase/examples
InterBaseC_LI             /opt/interbase/examples/align.h
InterBaseC_LI             /opt/interbase/examples/api1.c
InterBaseC_LI             /opt/interbase/examples/api10.c
InterBaseC_LI             /opt/interbase/examples/api11.c
InterBaseC_LI             /opt/interbase/examples/api12.c
InterBaseC_LI             /opt/interbase/examples/api13.c
InterBaseC_LI             /opt/interbase/examples/api14.e
InterBaseC_LI             /opt/interbase/examples/api15.c
InterBaseC_LI             /opt/interbase/examples/api16.c
InterBaseC_LI             /opt/interbase/examples/api16t.c
InterBaseC_LI             /opt/interbase/examples/api2.c
InterBaseC_LI             /opt/interbase/examples/api3.c
InterBaseC_LI             /opt/interbase/examples/api4.c
InterBaseC_LI             /opt/interbase/examples/api5.c
InterBaseC_LI             /opt/interbase/examples/api6.c
InterBaseC_LI             /opt/interbase/examples/api7.c
InterBaseC_LI             /opt/interbase/examples/api8.c
InterBaseC_LI             /opt/interbase/examples/api9.c
InterBaseC_LI             /opt/interbase/examples/api9f.c
InterBaseC_LI             /opt/interbase/examples/api9f.sql
InterBaseC_LI             /opt/interbase/examples/apifull.c
InterBaseC_LI             /opt/interbase/examples/blindmeta.sql
InterBaseC_LI             /opt/interbase/examples/dyn1.e
InterBaseC_LI             /opt/interbase/examples/dyn2.e
InterBaseC_LI             /opt/interbase/examples/dyn3.e
InterBaseC_LI             /opt/interbase/examples/dyn4.e
InterBaseC_LI             /opt/interbase/examples/dyn5.e
InterBaseC_LI             /opt/interbase/examples/dynfull.e
InterBaseC_LI             /opt/interbase/examples/employe2.sql
InterBaseC_LI             /opt/interbase/examples/example.h
InterBaseC_LI             /opt/interbase/examples/ib_udf.sql
InterBaseC_LI             /opt/interbase/examples/makefile
InterBaseC_LI             /opt/interbase/examples/readmeta.sql
InterBaseC_LI             /opt/interbase/examples/stat1.e
InterBaseC_LI             /opt/interbase/examples/stat10.e
InterBaseC_LI             /opt/interbase/examples/stat11.e
InterBaseC_LI             /opt/interbase/examples/stat12.e
InterBaseC_LI             /opt/interbase/examples/stat12t.e
InterBaseC_LI             /opt/interbase/examples/stat2.e
InterBaseC_LI             /opt/interbase/examples/stat3.e
InterBaseC_LI             /opt/interbase/examples/stat4.e
InterBaseC_LI             /opt/interbase/examples/stat5.e
InterBaseC_LI             /opt/interbase/examples/stat6.e
InterBaseC_LI             /opt/interbase/examples/stat7.e
InterBaseC_LI             /opt/interbase/examples/stat8.e
InterBaseC_LI             /opt/interbase/examples/stat9.e
InterBaseC_LI             /opt/interbase/examples/udf.sql
InterBaseC_LI             /opt/interbase/examples/udflib.c
InterBaseC_LI             /opt/interbase/examples/writemeta.sql
InterBaseC_LI             /opt/interbase/examples/xml_api_buffer.c
InterBaseC_LI             /opt/interbase/examples/xml_api_file.c
InterBaseC_LI             /opt/interbase/include
InterBaseC_LI             /opt/interbase/include/gds.f
InterBaseC_LI             /opt/interbase/include/gds.h
InterBaseC_LI             /opt/interbase/include/gds.hxx
InterBaseC_LI             /opt/interbase/include/ib_util.h
InterBaseC_LI             /opt/interbase/include/ibase.h
InterBaseC_LI             /opt/interbase/include/iberror.h
InterBaseC_LI             /opt/interbase/include/ibxml.h
InterBaseC_LI             /opt/interbase/include/ibxml_proto.h
InterBaseC_LI             /opt/interbase/include/perf.h
InterBaseC_LI             /opt/interbase/interbase.msg
InterBaseC_LI             /opt/interbase/lib
InterBaseC_LI             /usr/include/gds.h
InterBaseC_LI             /usr/include/ib_util.h
InterBaseC_LI             /usr/include/ibase.h
InterBaseC_LI             /usr/include/iberror.h
InterBaseC_LI             /usr/include/ibxml.h
InterBaseC_LI             /usr/include/ibxml_proto.h
InterBaseC_LI             /usr/lib/libgds.so.0
InterBaseC_LI             /usr/lib/libibxml.so
#
----------------------------------------------------------------------

as you can see, the second-to-the-last line shows that 
/usr/lib/libgds.so.0 IS included in the rpm --- though 
/usr/lib/libgds.so (a symlink to the ~so.0 version) is not.

i had wondered whether the symlink was the problem (rpm/yum don't see 
the symlinked version), but without rebuilding Borland's own 
InterBaseC_LI rpm (and putting in a 'Provides: libgds.so'), i couldn't 
really test this. besides, even when the interbase driver is not 
installed via rpm, isn't the whole point of auto-dependency checking, 
that it should see the libraries available to the system and tell 
whether they are there -- *regardless* of HOW they were installed?

>>---------------------------------------------------------------------
>># rpm -qp --requires php-interbase-5.0.4-10.4.i686.rpm
>>rpmlib(VersionedDependencies) <= 3.0.3-1
>>php = 5.0.4-10.4
>>perl
>>grep
>>rpmlib(PayloadFilesHavePrefix) <= 4.0-1
>>rpmlib(CompressedFileNames) <= 3.0.4-1
>>---------------------------------------------------------------------
> 
> 
> Sounds like it's missing an entry in the requires line then.

no! that's not the problem.. it ***USED*** to ALSO say libgds.so , but 
what i'm saying is that i got it to OMIT the 'libgds.so' (by using 
AutoReq: 0) in a feeble attempt to fix the problem. and this DID fix the 
install dependency for rpm, but NOT for yum.


> Just because it installs fine, doesn't mean its not busted :-P

heheh.. well, ain't that a fact

>>how does this dependency still show up with yum, even though i purposely
>>took it out during rpmbuild?
>>
>>is yum doing its OWN auto-dependency checking?
> 
> 
> 
> I believe so, yes. 

then i think this is a problem, because it really needs to either 1) be 
turned off, or, better yet, the auto-dependency checking needs to be 
fixed (or configured) in such a way that it WILL SEE the libgds.so that 
is already on the system (whether by rpm-install, or by tarball: either 
way, ldconfig -v DOES see it, so why doesn't yum's auto-dependency 
checking?)



More information about the Yum mailing list