summaryrefslogtreecommitdiffstats
path: root/doc/SystemTap_Beginners_Guide/en-US/extras
diff options
context:
space:
mode:
authorWilliam Cohen <wcohen@redhat.com>2008-11-04 01:43:48 -0500
committerWilliam Cohen <wcohen@redhat.com>2008-11-04 01:43:48 -0500
commit3266a355a8d41eee4e49ce6aa841a5166e3f6fe9 (patch)
tree91f5a2da93e79525111ea115c84b7162063eb22a /doc/SystemTap_Beginners_Guide/en-US/extras
parentbbd2860f9c95fbef790a2f414c8fc6548c5fec3d (diff)
downloadsystemtap-steved-3266a355a8d41eee4e49ce6aa841a5166e3f6fe9.tar.gz
systemtap-steved-3266a355a8d41eee4e49ce6aa841a5166e3f6fe9.tar.xz
systemtap-steved-3266a355a8d41eee4e49ce6aa841a5166e3f6fe9.zip
Include staprep.sh script and make use of it in describing Systemtap setup.
Diffstat (limited to 'doc/SystemTap_Beginners_Guide/en-US/extras')
-rw-r--r--doc/SystemTap_Beginners_Guide/en-US/extras/stapprep.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/doc/SystemTap_Beginners_Guide/en-US/extras/stapprep.sh b/doc/SystemTap_Beginners_Guide/en-US/extras/stapprep.sh
new file mode 100644
index 00000000..ba909994
--- /dev/null
+++ b/doc/SystemTap_Beginners_Guide/en-US/extras/stapprep.sh
@@ -0,0 +1,35 @@
+#! /bin/bash
+check_error() { if test $1 != 0; then echo $2; exit $1; fi }
+DEBUGINFOREPO="rhel-debuginfo"
+
+if [ "$#" -lt 1 ]; then
+ UNAME=`uname -r` # determine the kernel running on the machine
+else
+ UNAME=$1 #user passed in uname value
+fi
+UNAME=`echo $UNAME | sed "s/ //"` #strip out any whitespace
+KERNEL="kernel"
+for VARIANT in debug kdump PAE xen; do
+ TMP=`echo $UNAME | sed s/$VARIANT//`
+ if [ "$TMP" != "$UNAME" ]; then
+ UNAME=$TMP; KERNEL="kernel-$VARIANT"
+ fi
+done
+KERN_ARCH=`uname -m`
+KERN_REV=`echo $UNAME | sed s/.$KERN_ARCH//` # strip arch from uname
+CANDIDATES="$KERNEL-$KERN_REV.$KERN_ARCH $KERNEL-devel-$KERN_REV.$KERN_ARCH \
+$KERNEL-debuginfo-$KERN_REV.$KERN_ARCH \
+kernel-debuginfo-common-$KERN_REV.$KERN_ARCH"
+NEEDED=`rpm --qf "%{name}-%{version}-%{release}.%{arch}\n" -q $CANDIDATES | \
+ grep "is not installed" | awk '{print $2}'`
+if [ "$NEEDED" != "" ]; then
+ echo -e "Need to install the following packages:\n$NEEDED"
+ if [ `id -u` = "0" ]; then #attempt download and install
+ DIR=`mktemp -d` || exit 1
+ yumdownloader --enablerepo=$DEBUGINFOREPO $NEEDED --destdir=$DIR
+ check_error $? "problem downloading rpm(s) $NEEDED"
+ rpm --force -ivh $DIR/*.rpm
+ check_error $? "problem installing rpm(s) $NEEDED"
+ rm -r $DIR #cleanup
+ fi
+fi