I'm involved in a project that's looking for a convenient way to package and distribute both binary and source distributions of software. However only about half of our developers have root on their Linux boxes, and there are other very valid reasons someone might not necessarily want to build RPMs or install them into the typical locations. They might want user-private or group-private installations carried out by "normal" users.
I've already found documentation on how to build RPMs without root,
and it seems that if we make them relocatable, we can install them
pretty much wherever we want.
However it is not clear to me whether RPMs can actually be installed
by anyone other than root, and how things would work on a multi-user
box, where multiple users might want to have their own separate local
installations of the same package.
a) all install paths must be writable. b) chroot(2) is root only, so --root cannot be used c) the database must be writable by non-root.
It appears that it would not be hard for each user to have their own
database. But what about dependencies on packages installed
system-wide by root in the "standard" database? Can rpm handle
multiple databases simultaneously? (It seems to me that the ideal
behavior would be to accept, say, multiple colon-separated paths for
the dbpath option. The first would be updated by the package
installation; the others would be read-only to check for dependencies,
etc. This way, you could maintain user, group, and system-level RPM
installations pretty easily.)