On 8/29/05, jeff stern <jas@xxxxxxx> 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