Thanks for the info Fred. Using this method now but it isnt practical for our situation. Anyone know where I can get a good crash corse on python? <Grin> I'm amazed that I'm the only one that wants this... oh well, not the fisrt time :P Earl --- Fred <fredn1@xxxxxx> wrote: > On Wednesday 16 March 2005 05:37, Earl wrote: > > Need to create a custom repo for local (airgap) > use. > > Repo will be comprised of approx 5-10 RPMS from 3 > > different existing repos and about 200 from the > Fedora > > CORE 3 base. Don't want to maintain a full mirror > of > > the 3 repos I only use 5-10 RPMS from... > > > > Question is how to keep all of the RPMS in my > custom > > repo current? > > I do this by using yum update on *one* machine to > stay > current, and then move the downloaded rpms to a > local > repository and re-running createrepo on it. > > You have to make sure that *all* the affected > packages are > installed on this machine. > > I then use the local repo(s) for all my *other* > local workstations > in place of the official one(s). > > I use the script (yum 2.x) below. (without the line > wrapping) > > Fred. > > #!/bin/bash > # > # move rpms from yum's cache to local repositories > # and re-create the repo metadata > # > > FEDORA_VERSION=`rpm -q --queryformat '%{VERSION}' > fedora-release` > case $FEDORA_VERSION in > "3" | "2" | "1") > YUM_BASE=/var/ftp/pub/fc$FEDORA_VERSION/yum > ;; > *) > echo -e "**Error** unknown fedora version: > $FEDORA_VERSION" > exit 1 > ;; > esac > > YUM_CACHE=/var/cache/yum > > cd $YUM_CACHE > YUM_C_DEL=`find . -type d -maxdepth 1|grep -E > '(-ftp|dvd|localbuilds)' > > sed 's:^./::'` > YUM_C_MOV=`find . -type d -maxdepth 1|grep -Ev > '(-ftp|dvd|localbuilds|^.$)'| > sed 's:^./::'` > > YUM_DATE=`date +"%Y%m%d-%H%M%S"` > > echo > echo -e "deleting files from ..." > for d in $YUM_C_DEL; do > cd $YUM_CACHE/$d/packages > YUM_C_FILES=`find . -name '*.rpm' | sed 's:^./::'` > echo -e " `pwd`:" > for f in $YUM_C_FILES; do > echo -e " $f" > rm -f $f > done > done > > echo > cd $YUM_CACHE > YUM_C_FILES=`find . -name '*.rpm'|grep -vE > '.(i386|i586|noarch).rpm' | sed > 's:^./::'` > if [ "x$YUM_C_FILES" != "x" ]; then > echo -e "warning downloaded i686 / athlon / src > packages found:" > for f in $YUM_C_FILES; do > echo -e " $f" > done > echo -ne " abort [y]/n?" > read -n 1 -a YUM_CMD > if [ -z $YUM_CMD ] || [ $YUM_CMD != "n" ]; then > echo -e " aborted." > exit 1 > fi > echo > fi > > echo -e "moving source packages from ..." > for d in $YUM_C_MOV; do > YUM_C_FROM=$YUM_CACHE/$d/packages > YUM_C_TO=$YUM_BASE/$d/SRPMS > if [ ! -d $YUM_C_TO ]; then > mkdir -p $YUM_C_TO > fi > cd $YUM_C_FROM > YUM_C_FILES=`find . -name '*.src.rpm' | sed > 's:^./::'` > echo -e " `pwd` to $YUM_C_TO:" > for f in $YUM_C_FILES; do > echo -e " $f" > mv $YUM_C_FROM/$f $YUM_C_TO > done > done > > echo -e "moving packages from ..." > for d in $YUM_C_MOV; do > YUM_C_FROM=$YUM_CACHE/$d/packages > YUM_C_TO=$YUM_BASE/$d/RPMS > if [ ! -d $YUM_C_TO ]; then > mkdir -p $YUM_C_TO > fi > cd $YUM_C_FROM > YUM_C_FILES=`find . -name '*.rpm' | sed 's:^./::'` > echo -e " `pwd` to $YUM_C_TO:" > for f in $YUM_C_FILES; do > echo -e " $f" > mv $YUM_C_FROM/$f $YUM_C_TO > done > done > > echo > echo -ne "resync repositories for non-yum FTP > sources y/[n]?" > read -n 1 -a YUM_CMD > if [ $YUM_CMD == "y" ]; then > echo -e " ok." > cd $YUM_BASE > YUM_C_MOV="`find . -type d -maxdepth 1|grep -E > '(-ftp)'| sed 's:^./::'` > $YUM_C_MOV" > else > echo -e " skipped." > fi > > echo -ne "resync localbuilds repository y/[n]?" > read -n 1 -a YUM_CMD > if [ $YUM_CMD == "y" ]; then > echo -e " ok." > cd $YUM_BASE > YUM_C_MOV="`find . -type d -maxdepth 1|grep -E > '(localbuilds)'| sed > 's:^./::'` $YUM_C_MOV" > else > echo -e " skipped." > fi > > echo > for d in $YUM_C_MOV; do > YUM_C_TO=$YUM_BASE/$d > cd $YUM_C_TO > echo -e "resync repo data for repository `pwd` > ...\n" > case $FEDORA_VERSION in > "2" | "1") > rm -rf headers > yum-arch -vv -l -s . ./headers|tee > ./yum-arch-$YUM_DATE > ;; > *) > rm -rf repodata > createrepo -v -p .|tee createrepo-$YUM_DATE > ;; > esac > echo -e "" > done > > > > _______________________________________________ > Yum mailing list > Yum@xxxxxxxxxxxxxxxxxxxx > https://lists.dulug.duke.edu/mailman/listinfo/yum > __________________________________ Do you Yahoo!? Yahoo! Small Business - Try our new resources site! http://smallbusiness.yahoo.com/resources/