[Yum] yum-pull (current state), universal repository layout

William Stearns wstearns at pobox.com
Wed Dec 1 04:33:49 UTC 2004


Good day, all,
	yum-pull is a script I wrote to mirror rpm repositories locally, 
allowing you to save bandwidth and disk space.

	As of version 0.13, here are the features:
- Supports Fedora Core 1, 2, and 3 (both i386 and x86_64), Mandrake 9.1, 
9.2, 10.0, and 10.1 (i386), and Redhat 7.3, 8, and 9.
- Provides the following repositories for as many of the above
distributions as are available: atrpms, ccrma, core, dag, dries, extras,
freshrpms, jpackage, livna, local, newrpms, openpkg, updates, wstearns,
and ximian.
- creates the lines you need to add to /etc/yum.conf on the clients
- creates repository headers for old yum, new yum, and apt (and so 
supports yum, yumi, apt, synaptic, rug, red-carpet, and up2date clients).
- optional bandwidth limiting
- randomly selects an available mirror to spread load around (and retries 
up to three times with random mirrors in case a few are unavailable)
- pulls files via rsync to reduce minimize outbound bandwidth
- deletes old rpms to save space (and remembers them so they won't be 
downloaded again)
- hardlinks duplicates to save space
- runs as a non-root user on the mirror server
- builds html indexes of the rpms (although this is a bit dodgy at the 
moment, I need to update the html indexing tool to handle huge numbers of 
rpms)

	Dag, thanks for mentioning yam 
(http://dag.wieers.com/home-made/yam/).  I took a look at it; it looks 
like the overall goal of providing local repositories is the same, but 
your tool and mine differ in what we provide to some degree.  Yours 
supports PXE and network booting, mine doesn't.  I have a sense I support 
more repositories.  We support different core OS's.
	I think it's good both are available for users with different 
needs.

	Does anyone have any feeling about the directory layout of a 
universal repository?  I couldn't seem to find an authoritative source, 
and so tried the following for current versions of yum-pull:


`-- fedora
    `-- linux
        |-- 1
        |   |-- i386
        |   |   |-- atrpms
        |   |   |   |-- headers
        |   |   |   |-- packages
        |   |   |   `-- repodata
        |   |   |-- ccrma
        |   |   |   |-- headers
        |   |   |   |-- packages
        |   |   |   `-- repodata
, etc.

	By having the "headers" and "packages" under each repository name, 
thes cound be nfs/samba/bind mounted right under /var/cache/yum.  :-)

	Any feedback about this?  I'd love to have a universal layout we 
all agree on someday - wouldn't it save bandwidth on all of us if we came 
up with a standard layout that was accessible via round robin dns?  Is 
that what ayo was supposed to do?

	If you have a distribution or repository I'm not yet supporting, 
I'd be glad to add support.  Please find a few rsync URLs where the 
content can be found and I'll be glad to add it.
	Cheers,
	- Bill

---------------------------------------------------------------------------
	"Linux is is like a wigwam - no windows, no gates, apache
inside!"
--------------------------------------------------------------------------
William Stearns (wstearns at pobox.com).  Mason, Buildkernel, freedups, p0f,
rsync-backup, ssh-keyinstall, dns-check, more at:   http://www.stearns.org
--------------------------------------------------------------------------



More information about the Yum mailing list