[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: Is possible RPM's sets?
- From: Jeff Johnson <jbj JBJ ORG>
- To: rpm-list redhat com
- Subject: Re: Is possible RPM's sets?
- Date: Tue, 10 Jul 2001 15:12:16 -0400
On Tue, Jul 10, 2001 at 01:21:12PM -0500, Tim Mooney wrote:
> In regard to: Is possible RPM's sets?, Juan Carlos Martín Cano said (at...:
>
> > With others installers you can create software sets. Each set is the
> >concept of RPM package, and all sets create the product. In this way you
> >can choose a set of sets, and to have a lot of different instalations
> >with one package. Is possible this one, with the RPM's?
>
> RPM doesn't currently do what you're asking about. I like the feature
> you're talking about too. With RPM, you can make "related" packages,
> such as
>
> krb5-server
> krb5-workstation
> krb5-devel
> krb5-docs
>
> but there's no way in RPM itself to make a `krb5-bundle' that includes all
> of those sub-packages, and allows you to install all of them just by selecting
> the `krb5-bundle' for installation.
>
> Some of the graphical front-ends for RPM do support this, though, if
> that's any consolation.
>
Well, you can almost do the same thing as a package bundle or software set
using "manifests". Basically, anything that's not a package (i.e. with
rpm package magic in the 1st 4 bytes), will be read as a series
of glob expressions, honoring '#' comments. That means that you can do
do something like
cat << GO_SYSIN_DD > mymanifest
# This is a comment
<wherever>/krb5-server-*
<wherever>/krb5-workstation-*
<wherever>/krb5-devel-*
<wherever>/krb5-docs-*
GO_SYSIN_DD
where <wherever> is a file path or URL, and then do, for example
rpm -qp mymanifest
rpm -Uvh mymanifest
To further confuse matters, manifests can chain, even through URL's as in
cat << GO_SYSIN_DD > anothermanifest
<whereever>/mymanifest
GO_SYSIN_DD
rpm -Uvh anothermanifest
I believe this is a quite powerful and useful concept for rpm, but here's
what is still gonna (ahem) need some work before rpm-4.0.3 is released:
Consider what happens with a typical use of rpm
rpm -Uvh ftp://<wherever>/*
Yup, you can read a remote manifest that can chain you Somewhere Else Instead.
This can (and will) be insturmented with a CLI option, something
like requiring --manifest to "opt-in" before rpm-4.0.3 is released. Another
approach would be to prevent secondary chaining through URL's. I haven't
figgered what to do yet, as this is a pretty goofy unix command line thingy
that I know of no precedent for. (I'm not claiming invention, only ignorance.)
Another problem is detecting loops
cat << GO_SYSIN_DD > manifest
manifest
GO_SYSIN_DD
That can be pretty simply handled by calculating a digest of a manifest
on the fly, saving already visited manifest digests, and dinging the
command if you ever revisit a manifest with the same digest.
Another tedious problem is
bash$ rpm -qp /etc/sendmail.cf
/etc/sendmail.cf: read manifest failed: Success
but that's just sloppy programming on my part so far.
Ideas?
73 de Jeff
--
Jeff Johnson ARS N3NPQ
jbj@jbj.org (jbj@redhat.com)
Chapel Hill, NC
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[]