[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Questions about RPM



This is a question that was asked by one of our developers about RPM. 
We are using RPM to distribute packages.  The packages are available
only as Binaries not source.  

Is there a way we could have RPM pick up the binaries in one location
yet when the RPM is installed, the files would be in another?

Thanks

Jody Williams
jody@linuxgrp.net

---Begin Discussion with Developer---

If i understand the process correctly, the RPM spec file is used to
build
the RPMs, and specifies the location in which the files which make up
the
RPM are found using the %files section.  Each file is expected to be in
the
location specified.  Dumb question: in the current spec files, all the
paths
are absolute.  Can they be relative?  If i read the docs correctly, the
RPM_BUILD_ROOT can be set via the command line, and if used in the
%files
section, can allow build-time specification of where the files come
from?

When the constructed RPM is installed on a target host, am i correct in
thinking that all the files are restored to the locations specified in
the
%files section?  Again, is a relative path allowed?  Does RPM_BUILD_ROOT
work at install time?

The reason for asking is that currently all of the spec files specify a
hard-coded /home/edinet as the location for the files.  Obviously, in
order
to build the RPMs, those files must be put there, and we would
presumably
have to include some sort of "install" target in the makefile to get the
files where the RPM build expects to find them.  

It would probably be useful to be able to create a "shadow" directory
tree
which is similar to the "real" locations for the file, but isn't
/home/edinet, and build the RPMs using the files therein.  This would
greatly simplify ensuring we have a clean RPM build, without any
old/overlooked files sneaking in, since we could simply delete the
entire
shadow and recreate it.

If RPM_BUILD_ROOT won't do what we need, i wonder if we should consider
creating a distribution directory (maybe under /tmp?), and having the
RPM
execute an install process (using a Makefile or shell script) to move
the
files to the correct final locations?  

Title: RPMs, installation, and all that...

Hi all.  As part of the source control process, and based on the recent decision to create RPMs as the vehicle for regression/validation testing, i've been looking into how RPMs work with the idea of integrating RPM building into a top-level Makefile.  I'd like to check a couple of assumptions about what i saw in the spec files which were mailed out to us a while back, and start a discussion about what makes sense.

If i understand the process correctly, the RPM spec file is used to build the RPMs, and specifies the location in which the files which make up the RPM are found using the %files section.  Each file is expected to be in the location specified.  Dumb question: in the current spec files, all the paths are absolute.  Can they be relative?  If i read the docs correctly, the RPM_BUILD_ROOT can be set via the command line, and if used in the %files section, can allow build-time specification of where the files come from?

When the constructed RPM is installed on a target host, am i correct in thinking that all the files are restored to the locations specified in the %files section?  Again, is a relative path allowed?  Does RPM_BUILD_ROOT work at install time?

The reason for asking is that currently all of the spec files specify a hard-coded /home/edinet as the location for the files.  Obviously, in order to build the RPMs, those files must be put there, and we would presumably have to include some sort of "install" target in the makefile to get the files where the RPM build expects to find them. 

It would probably be useful to be able to create a "shadow" directory tree which is similar to the "real" locations for the file, but isn't /home/edinet, and build the RPMs using the files therein.  This would greatly simplify ensuring we have a clean RPM build, without any old/overlooked files sneaking in, since we could simply delete the entire shadow and recreate it.

In addition, i believe there are options for installing mappers and xml translators without edinet.  Towanda tells me that we're supposed to allow the clients to install these stand-alones in arbitrary directories.  I was wondering if using RPM_BUILD_ROOT would allow that.

If RPM_BUILD_ROOT won't do what we need, i wonder if we should consider creating a distribution directory (maybe under /tmp?), and having the RPM execute an install process (using a Makefile or shell script) to move the files to the correct final locations? 

Is this a sufficiently complicated issue that we need a phone conference?  Or would an exchange of e-mails suffice?

Thanks.

J.
--
Jon Stewart-Taylor   Business Process Consultant, OAO Corporation
E-mail: JTaylor@oao.com   Ph: (301)614-3653
No. VA Astronomy Club: http://novac.com   Esperanto: Lingvo Internacia


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] []