#!/bin/sh -x # Copyright Jérôme Benoit, released under GPL YUM_DOWNLOADER_BIN=`which yumdownloader` RPM_BIN=`which rpm` RPM_DL_DIR="/data/rpmrecover" RPMPKGS_LIST_DEFAULT_PATH="/var/log/rpmpkgs" RPMPKGS_LIST_FILE_NAME="rpmpkgs.defaut" RPMPKGS_LIST_FILE_NAME_LATEST="rpmpkgs.lastest" RPMPKGS_LIST_FILE_GEN="rpmpkgs.gen" RPM_OPTS_RECOVERDB="-ivh --noscripts --notriggers --justdb" RPM_OPTS_REINSTALL="-Uvh --replacepkgs --nodeps" if [ ! -d $RPM_DL_DIR ] then mkdir -p $RPM_DL_DIR fi copy_default_system_list() { #if [ ! -f $RPM_DL_DIR/$RPMPKGS_LIST_FILE_NAME ] #then cp -fp $RPMPKGS_LIST_DEFAULT_PATH $RPM_DL_DIR/$RPMPKGS_LIST_FILE_NAME #fi } gen_another_default_system_list() { $RPM_BIN -qa --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n' 2>&1 \ | /bin/sort > $RPM_DL_DIR/$RPMPKGS_LIST_FILE_NAME_LATEST } gen_rpm_list() { $RPM_BIN -qa --qf '%{name}.%{arch}\n' 2>&1 \ | /bin/sort > $RPM_DL_DIR/$RPMPKGS_LIST_FILE_GEN } # first copy and generate default system list, for direct use by rpm copy_default_system_list gen_another_default_system_list # Then generate a rpm list for use by yumdownloader gen_rpm_list # Download rpm list in $RPM_DL_DIR dl_rpm() { if [ ! -x $YUM_DOWNLOADER_BIN ] then yum install yum-utils fi YUMDL_OPTS="--destdir $RPM_DL_DIR" for RPM in `cat $RPM_DL_DIR/$RPMPKGS_LIST_FILE_GEN` do $YUM_DOWNLOADER_BIN $YUMDL_OPTS $RPM done } # comment out to just save/generate rpm list #dl_rpm ## choose what to do by commenting out ... be smarter later ... # reinit rpm db with no install cd $RPM_DL_DIR #$RPM_BIN $RPM_OPTS_RECOVERDB *.rpm #$RPM_BIN $RPM_OPTS_RECOVERDB $RPMPKGS_LIST_FILE_NAME #$RPM_BIN $RPM_OPTS_RECOVERDB $RPMPKGS_LIST_FILE_NAME_LATEST # reinit rpm db with install of RPMS with no deps check and with scriptlets cd $RPM_DL_DIR #$RPM_BIN $RPM_OPTS_REINSTALL *.rpm #$RPM_BIN $RPM_OPTS_REINSTALL $RPMPKGS_LIST_FILE_NAME #$RPM_BIN $RPM_OPTS_REINSTALL $RPMPKGS_LIST_FILE_NAME_LATEST