#!/bin/sh # # autorpm to yum # This script is to convert a Fermi Linux machine that # is using autorpm to make it use yum instead. # # Written by: Troy Dawson # First write: March 19, 2003 # Changed: April 16, 2003 # Made this a 'non-gentle' script, that just does the change # This version isn't to be forced on everyone, but just for # those that want an easy way to change over. # # Good time for at # at -f autorpm.to.yum 0105 tomorrow # ################## # Variables ################## VERSION="0.9" SERVER="linux1.fnal.gov" RPMPATH="/linux/71rolling/i386/RedHat/RPMS" TEMPDIR="/etc/a2y" MAILFILE="/tmp/a2y.mail" AUTOINSTALL="no" AUTOVERIFY="no" AUTOCRON="no" YUMINSTALL="no" YUMCRON="no" DEBUG="yes" MAILLIST="root" #MAILLIST="root,me@mydomain.com,you@yourdomain.org" TODAY="$(date +%D)" ############### # Download and install the latest rpm ############## install_rpm(){ if [ $DEBUG = "yes" ] ; then echo " " echo "****************" echo "UPDATING RPM" echo "****************" echo " " echo "Saving old rpm database" fi cp -rp /var/lib/rpm /var/lib/rpm.$TODAY if [ $DEBUG = "yes" ] ; then echo " " echo "Downloading latest packages" fi ncftpget ftp://${SERVER}/${RPMPATH}/rpm-* ncftpget ftp://${SERVER}/${RPMPATH}/popt-* if [ $DEBUG = "yes" ] ; then echo " " echo "Updating rpm to the required level" echo " " if ! [ -d /var/lib/original.rpm ] ; then /bin/cp -r /var/lib/rpm /var/lib/original.rpm fi rpm -v --freshen --nodeps --force rpm-*.rpm popt-*.rpm echo " " echo " RPM has been updated to 4.0.4" echo " " else rpm --freshen --nodeps --force rpm-*.rpm popt-*.rpm fi if [ $DEBUG = "yes" ] ; then echo " " echo "Rebuilding rpm database" echo " checking database for major errors" fi rpm -qa > /dev/null if [ $? -eq 0 ] ; then if [ $DEBUG = "yes" ] ; then echo " " echo " Database appears to be intact, rebuilding" echo " " fi rpm -rebuilddb else if [ $DEBUG = "yes" ] ; then echo " " echo " Database does not appear to be intact, not rebuilding" echo " " fi fi echo " " >> $MAILFILE echo " RPM has been updated to 4.0.4" >> $MAILFILE echo " " >> $MAILFILE } ############### # Download and install the latest yum ############## install_yum(){ if [ $DEBUG = "yes" ] ; then echo " " echo "****************" echo "INSTALLING YUM" echo "****************" echo " " echo "Downloading latest packages" fi ncftpget ftp://${SERVER}/${RPMPATH}/yum* if [ $DEBUG = "yes" ] ; then echo " " echo "Installing and/or upgrading Yum packages" echo " " rpm -Uv yum-1*.rpm rpm -Uv yum-conf*.rpm rpm -Uv yum-header*.rpm echo " " echo "Yum has been installed and configured." echo " " else rpm -U yum-1*.rpm rpm -U yum-conf*.rpm rpm -U yum-header*.rpm fi echo " " >> $MAILFILE echo " Yum has been installed and configured." >> $MAILFILE echo " " >> $MAILFILE } ############### # Remove autorpm ############## remove_autorpm(){ if [ $DEBUG = "yes" ] ; then echo " " echo "****************" echo "REMOVING AUTORPM" echo "****************" echo " " rpm -ev autorpm autorpm-config echo " " else rpm -e autorpm autorpm-config fi echo " " >> $MAILFILE echo " autorpm and autorpm-config have been uninstalled." >> $MAILFILE echo " If you need to re-install them do the command" >> $MAILFILE echo " yum install autorpm autorpm-config" >> $MAILFILE echo " Reinstalling autorpm is not recommended." >> $MAILFILE echo " " >> $MAILFILE } ############### # cleanup autorpm ############## cleanup_autorpm(){ if [ $DEBUG = "yes" ] ; then echo " " echo "****************" echo "CLEANUP AUTORPM" echo "****************" echo " " fi rm -f /var/spool/autorpm/*.rpm rm -f /etc/cron.daily/*autorpm* echo " " >> $MAILFILE echo " All of the leftover rpms have been removed from the " >> $MAILFILE echo " autorpm cache area" >> $MAILFILE echo " " >> $MAILFILE if [ $DEBUG = "yes" ] ; then echo " " echo " All of the leftover rpms have been removed from the " echo " autorpm cache area" echo " " fi } ############### # Main Program ############### mkdir $TEMPDIR cd $TEMPDIR echo "Autorpm to Yum conversion script" > $MAILFILE echo "Version ${VERSION} ran on" >> $MAILFILE date >> $MAILFILE echo " " >> $MAILFILE if [ $DEBUG = "yes" ] ; then echo "Autorpm to Yum conversion script" echo "Version ${VERSION} ran on" date echo " " fi remove_autorpm cleanup_autorpm install_rpm install_yum ######## # Cleanup and Mail ######## if [ $DEBUG = "yes" ] ; then echo " /bin/mail -s \"AUTORPMtoYUM:$HOSTNAME:$TODAY\" $MAILLIST " fi /bin/mail -s "AUTORPMtoYUM:$HOSTNAME:$TODAY" $MAILLIST < $MAILFILE rm -f $TEMPDIR/*.rpm