[CentOS] Re: Why is yum not liked by some? -- CVS analogy (and why you're not getting it)

Bryan J. Smith b.j.smith at ieee.org
Fri Sep 9 22:06:10 UTC 2005

Les Mikesell <lesmikesell at gmail.com> wrote:
> No, that's what I want to avoid.  Everyone else responding
> *is* maintaining snapshot copies of repositories and I
> don't think anyone should have to.  Yum's view of a
> repository consists of all the hdr files it has downloaded
> from it.

Yes, for a _specific_ set of RPMs.  That is pre-generated,
and available statically for the current RPM set.

YUM repositories cannot say ... "oh, what if this RPM wasn't
uploaded?" and that type of arbitrary meta-data.  To do so
requires multiple copies of the meta-data.

> I want it to pretend that files added after
> a certain time weren't there, thus creating a view of
> the state of the repository at a prior time.

Then you need a _different_ meta-data snapshot from that
_earlier_ time.  Either that, or a delta of _all_ headers,
which significantly _bloats_ the meta-data.

Which means the client either has to download _all_ that
meta-data history, and do its own delta-assembly/resolution,
which means a _lot_ of traffic.  *OR* the server has to have
a dynamic service that does this for a client.

In _either_ case, the initial delay when yum is run and the
meta-data is fetched/resolved is massive increased.  You go
from seconds to minutes.

> Given only that, nothing anyone has said yet has convinced
> me that that yum would not make the same decisions
> about update versions again.

Understand YUM is making update decisions based on the
meta-data provided by the repository, and that meta-data is
for the _current_ state of the repository.  There is
absolutely _no_way_ that meta-data it can provide "here was
the state of the repository 5 minutes ago" or "10 hours ago"
or "when another system ran 5 days ago."

A YUM repository is a web site with RPMs.
It has a meta-data listing for YUM clients.
YUM clients do _not_ read the RPMs/headers.
They only read the meta-data.

That meta-data is pre-built, against the repository.
It cannot tell the YUM clients anything about the state of
the repository at an earlier date.

To do so would either require a massive bloat of the size of
the meta-data, or a dynamic service at the repository
(instead of simple HTTP serving) to generate that

An alternative is to use my prposed "hack" that lets YUM
clients retrieve any prior, pre-built meta-data list.  That
way anytime the meta-data is regenerated, old meta-data lists
are not lost and still available.

But it requires a modification on the repo side.  The
meta-data does not and cannot (without _major_ changes)
support any "history."  That's what you're not seeing.  And
it falls on your usage of YUM only as a client, and not any
experience of creating a YUM repository.  It's a web site
with an index (the meta-data) -- nothing more!

In fact, it's like the difference between an Apache server,
and Subversions using Apache+WebDAV+DeltaV (WebDAV adds file
management, DeltaV adds basic versioning).

Bryan J. Smith                | Sent from Yahoo Mail
mailto:b.j.smith at ieee.org     |  (please excuse any
http://thebs413.blogspot.com/ |   missing headers)

More information about the CentOS mailing list