Nick Rout wrote: >>Last time I looked rpm tells you which dependencies are not satisfied, >>but not which packages satisfy them (how could it?). That's where the >>guesswork comes in. >> > >true, but go to rpmfind.net and search for the dependency, eg >libcomplex.so.4 and it will tell you what rpm it is in. You can then >download it from rpmfind, or your cd or a close mirror or whatever. > >The point that was being made is that if rpm is given a whole list of >rpm files it will locate dependencies within thiose files and not give >any error. Of course if there are needed dependencies that are not in >the given list you are back to square one. > > >Or you can use up2date or the equivalent tool from you distro that >automatically downloads all dependencies. Some people object to up2date >because you must register (for free) to use it, and it only downloads >from redhat, which can be slow. > >apt-rpm may indeed be the solution, but I have yet to use it given the >warnings about it last time I looked at its homepage. (beta , may trash >system, we take no reponsibility etc). > >I think urpmi in mandrake does a similar job, and there is a gui wrapper. >It has the advantages that (1) it will take dependencies from cdrom >sources as well as from the net (2) you can put your own mirror >definitions in, so you can download from a closer site, or even your own >lan if you have a number of machines to update. > >Then there is the BSD/sorcerer/gentoo approach of always downloading & >compiling the latest sources, my gentoo distro which I installed over >the weekend is running kde3 quite nicely, and kde2 never touched it. > Yes, urpmi does and the software manager frontend in Mandrake Control Center works very well indeed. You can specify it to check a local directory first for the needed dep then have it get it from your local/preferred mirror. It also handles nested deps pretty well which other methods may not.
gFTP also has a nice directory compare feature so for example, should you want to stay bleeding edge (in Mandrake for ex) you just compare your local RPM's directory with the mirror, delete older rpm's on your dir then download the newer RPM's from the mirror. Since the distro's ensure that the mirror contains all RPM's to satisfy any dependencies for the distro you can be certain you have the needed rpm on your system at all times. Then, from the command line run: rpm --freshen *.rpm or rpm -Fvh *.rpm whateva, then, as discussed all installed rpm's will be updated after the deps are fulfilled which it will list if needed. If you update fairly often then software manager/urpmi/apt get won't be necessary as there will rarely be deps that must be fulfilled. Also, just FYI, I find that http://rpm.pbone.net/index.php3/stat/2 is often better than RPM find for RPM's/deps. Regards, Jason
