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

jeff stern jas at uci.edu
Mon Aug 29 21:48:06 UTC 2005


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

so anyway, i have this problem in the first place, that rpm does not see 
the libgds.so on my system :( ... so this is the first problem. i can 
get around this by just using --nodeps BUT a) i would like to know why i 
have this problem WHEN the libgds.so IS on my system, and b) i would 
like to make a yum repository, and so for other users, i do NOT want 
this dependency problem.. any ideas?

2) second problem: even when i turn off automatic dependency checking 
when building the rpms, yum still seems to "find" or "re-create" the 
dependency!

i.e., to get around the above problem with rpm/rpmbuild, i turn off the 
auto-dependency-checking in the interbase section of my php.spec file:

   AutoReq: 0

now, after the php-interbase rpm is built, indeed, it does NOT list 
libgds.so as a requirement:

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

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%]
---------------------------------------------------------------------

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

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?

thanks for any clues..




More information about the Yum mailing list