[TriLUG] another RPM question

Jeremy Portzer jeremyp at pobox.com
Sun Apr 6 17:31:46 EDT 2003


On Sun, 2003-04-06 at 12:17, Frank Hale (majic) wrote:
> Is there a FAQ,DOC,README or anything on
> installing/configuring RPM from the perspective of a
> distro creator. There is alot of great documentation
> out there for RPM usage but I cannot find anything as
> far as explaining what steps a developer needs to do
> for using RPM as a basis for a new distro.

You should consider getting a copy of (or just reading from the web, if
you can do that well) _Maximum RPM_.  While it's slightly dated, it's
the definitive RPM guide and should help you with most things.  I agree
it's probably not written from the point of view of a distro creator,
but once you get the basics down you'll be a lot better off.

> I can create RPM's no problem but when trying to
> install them RPM will list failed dependencies of that
> package even though I just compiled the RPM from
> scratch and it compiled fine. It would seem RPM thinks
> that I there is a base set of RPM's installed from
> which to fulfill dependencies which there isn't. I
> have no RPMs installed and only have a fresh install
> of RPM. I'd rather not pass --nodeps when installing
> as I would like to build my dependencies from scratch
> if that makes any sense.

When you make an new RPM, its dependencies are set both by the ones you
set in the .spec file, and some various script, such as
"find-requires".  The find-requires script looks at what your programs
use (for example, shared libraries, interpreters like bash and Perl,
etc.) and sets the appropriate dependencies.  There's a flag somewhere
to turn off this script (sorry I don't recall it at the moment).  Maybe
you can build RPMs for the basic libraries and other packages with
find-requires turned off, in order to get a base database going.  Then
once you've 'bootstrapped' your RPM database, turn the flag back on and
rebuild those packages with the find-requires script.

Looks like an ambitious task -- good luck!  Remember that most programs
have .spec files written for them already, either by the program's
authors, a contributor, or another Linux distribution.  RPMfind.net is a
great way to find RPMs for various programs from all different
distributions.  You'll probably find it much saner to work from all of
the existing .spec files instead of trying to reinvent the wheel.

--Jeremy




More information about the TriLUG mailing list