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

Jim Perrin jperrin at gmail.com
Mon Aug 29 22:14:01 UTC 2005


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? If so, does rpm -q --filesbypkg
interbase or whatever show this file? It's not what's on your system
that matters to rpm, it's HOW it got there. This is the root of your
evil I suspect.



> ---------------------------------------------------------------------
> # 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.

> 
> okay, all looks good.
> 
> now, if i just try to install the php-interbase rpm just using rpm
> command-line, i have NO problems now.. the dependency HAS been removed:
> 
> ---------------------------------------------------------------------
> # rpm -ivh php-5.0.4-10.4.i686.rpm php-pear-5.0.4-10.4.i686.rpm
> php-interbase-5.0.4-10.4.i686.rpm
> Preparing...                ###########################################
> [100%]
>     1:php                    ###########################################
> [ 33%]
>     2:php-pear               ###########################################
> [ 67%]
>     3:php-interbase          ###########################################
> [100%]
> ---------------------------------------------------------------------
> 

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


> okay, excellent! the php-interbase is now installing, no '--nodeps' flag
> needed.
> 
> now i would like to put it up on my own yum repository. so i create my
> repodata (createrepo <directory where my rpms are>)
> 
> i also add a .repo file to my /etc/yum.repos.d directory, for my own
> (same) system.
> 
> now, when i try to run 'yum -y install php php-interbase, i still get
> the dependency:
> 
> ---------------------------------------------------------------------
> # yum -y install php php-interbase php-xml
> Setting up Install Process
> Setting up repositories
> dries                     100% |=========================|  951 B    00:00
> jas                       100% |=========================|  951 B    00:00
> extras                    100% |=========================| 1.1 kB    00:00
> updates-released          100% |=========================|  951 B    00:00
> base                      100% |=========================| 1.1 kB    00:00
> Reading repository metadata in from local files
> Reducing Extra Fedora rpms dries - 4 - i386 to included packages only
> Finished
> Reducing Extra Fedora rpms jas - 4 - i386 to included packages only
> Finished
> Excluding Packages from Fedora Extras 4 - i386
> Finished
> Excluding Packages from Fedora Core 4 - i386 - Released Updates
> Finished
> Excluding Packages from Fedora Core 4 - i386 - Base
> Finished
> Parsing package install arguments
> Resolving Dependencies
> --> Populating transaction set with selected packages. Please wait.
> ---> Package php-xml.i686 0:5.0.4-10.4 set to be updated
> ---> Package php.i686 0:5.0.4-10.4 set to be updated
> ---> Package php-interbase.i686 0:5.0.4-10.4 set to be updated
> --> Running transaction check
> --> Processing Dependency: libgds.so for package: php-interbase
> --> Processing Dependency: php-pear for package: php
> --> Restarting Dependency Resolution with new changes.
> --> Populating transaction set with selected packages. Please wait.
> ---> Package php-pear.i686 0:5.0.4-10.4 set to be updated
> --> Running transaction check
> --> Processing Dependency: libgds.so for package: php-interbase
> --> Finished Dependency Resolution
> Error: Missing Dependency: libgds.so is needed by package php-interbase
> ---------------------------------------------------------------------

Yum does dependency checking of its own, which is a good thing in this
case, because technically with your rpms, I don't have to have
interbase installed to use php-interbase, which will quite possibly
lead to breakage.

> 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. 


-- 
Jim Perrin
System Administrator - UIT
Ft Gordon & US Army Signal Center



More information about the Yum mailing list