Some info on using RPMs, from some questions I asked fellow ibiblian Jon Mills:
pardom my enduring systems ignorance — where does one get rpms? i know that projects distribute them themselves… were some or all of the ones you installed provided by red hat?
RPMS are voodoo. No, redhat provided none of the rpms you asked for. It’s difficult to find binary rpms for specific linuxes (except for really popular, non-proprietary ones, or unless the distro provides them). If you can’t find a binary rpm, what you do then is to try and find a source rpm, which always looks like <package-name>.src.rpm. Source rpms let you compile from source, but it compiles it into an rpm, rather than just splattering it all over your filesystem. You run this command:
$ sudo rpmbuild --rebuild --target=`arch` <package-name>.src.rpm
It will try to compile and roll the binary rpm for you. If it fails on a compile dependency, then you try to auto-install that dependency:
$ sudo up2date --install <dependency>
If that doesn’t work, then you do this whole process over, except with the aim of just installing the dependency. So you look for binary or source rpms for the dependency, get it installed, and then go back to where you were.
This usually works pretty well. The only time you run into trouble is when you’re trying to install something which supersedes a package which lies within a huge chain of dependencies, such that removing it or upgrading it breaks dozens of other packages. This is called dependency hell, or RPM HELL. Upgrading PHP is a good example, because it has hooks into apache, mysql, and a ton of libraries–you can never just upgrade PHP.
for something like subversion, where it has several binaries and also some apache modules– does the rpm intelligently find the apache install and put the modules somewhere appropriate? do rpms ever actually modify config files for you?
The intelligence is in the rpm spec file, which must be written for each specific distro. That’s how the rpm knows how to find things. If all the spec files are well-written, then everything knows where everything else lives, and all is well.
rpms can modify config files, using shell scripts that get executed after the install. The shell script would be included inside the rpm, and called from the spec file. A good example is that when you install a linux kernel using rpm, it adds an entry for that kernel in /etc/lilo.conf or /boot/grub.conf.
http://rpm.pbone.net/ ? Use with caution, naturally. :p
http://rpmfind.net/ is also good. anyway, fedora now uses apt as a dependency tracker, and life is better.
rolling your own rpm, however, is real voodoo.