Article

cseader's picture
article
Reads:

4915

Score:
0
0
 
Comments:

0

OES: Apply Patches Without New Kernel Patches Being Applied

Author Info

26 April 2007 - 11:40am
Submitted by: cseader

(View Disclaimer)

Application:

If you have a need in your OES Linux environment to apply patches without having a new Kernel being applied, then the following should help you accomplish this goal.

Explanation:

This script checks for available patches and removes any kernel related patch and applies the rest, and if there are no updates then it will exit with "No Updates Available".

Script:

Copy the text below into a file preferably named oes_rug_pin_minus_kernel.sh or download it here.

#!/bin/bash
#Install Patches without installing the kernel 

RUGBIN=`which rug`
TMPPatches=`mktemp -t patches.XXXXXXXXXX` || exit 1

#Begin Patch Section
if [ -e $RUGBIN ]; then
$RUGBIN pl oes | sed -e '/^i/ d' -e '/--/ d' -e '/Name/ d' | awk '{ print $2 }' >> $TMPPatches

PATCH_ARRAY=( `cat $TMPPatches | tr '\n' ' '` )
KERN_Patches=`mktemp -t kern_patches.XXXXXXXXXX` || exit 1

#Check for Kernel Patches and remove them from the list of Patches to be installed
echo "Checking for Kernel patches..."
for i in ${PATCH_ARRAY[@]}; do
$RUGBIN pi $i | grep -iq "update for Linux kernel"
	if [ $? -eq 0 ]; then
		echo "                                    $i is a kernel patch"
		echo $i >> $KERN_Patches
		cat $TMPPatches | sed "/$i/ d" > $TMPPatches
	else 
		echo "$i is NOT a kernel patch"
	fi
done	 

#Format Patches in a line to install with rug pin
cat $TMPPatches | tr '\n' ' ' > $TMPPatches 

#Install Patches
update=`<$TMPPatches`
if [ "$update" != "" ]; then
echo "Executing rug to patch your system..."

$RUGBIN pin $update

#Summary
echo " "
echo "Summary:"
echo "Patches have been installed"
echo "The following Kernel Patches have not been installed."
echo "Install these patches individually with the following command."
echo "rug pin patch_name"
echo " "
echo "Kernel patch list:"
LEFTOVER=`<$KERN_Patches`
echo "$LEFTOVER"
echo " "
echo "Enjoy!!"
echo " "

else
echo "No Updates Available."
fi
fi

#Remove temp files
rm $TMPPatches
rm $KERN_Patches

Once you have this shell script created you can save it in /root/bin or something with the chmod 755 permissions on it. Now you are ready to set it up to run as a Cron Job or use it as you desire.

Enjoy!!


Disclaimer: As with everything else at Cool Solutions, this content is definitely not supported by Novell (so don't even think of calling Support if you try something and it blows up).

It was contributed by a community member and is published "as is." It seems to have worked for at least one person, and might work for you. But please be sure to test, test, test before you do anything drastic with it.




User Comments

© 2013 Novell