Bug 1031435

Summary: systemtap documentation should mention stap-prep as an easy way to install systemtap
Product: Red Hat Enterprise Linux 6 Reporter: Brad Hubbard <bhubbard>
Component: doc-SystemTap_Beginners_GuideAssignee: Jacquelynn East <jeast>
Status: CLOSED WONTFIX QA Contact: ecs-bugs
Severity: low Docs Contact:
Priority: medium    
Version: 6.4CC: bhubbard, rlandman
Target Milestone: rcKeywords: Documentation
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-05-20 02:03:27 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Brad Hubbard 2013-11-17 21:32:27 UTC
Description of problem:

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html-single/SystemTap_Beginners_Guide/index.html#using-setup mentioned the prerequisite packages for systemtap installation and how to install them.  I believe the documentation should also mention the fact that the customer will need to subscribe to the relevant *-debuginfo channel to install the packages with debuginfo-install and also that the quickest and easiest method for installing systemtap once they are subscribed to the debuginfo channels is as follows.

# yum install systemtap
# stap-prep

stap-prep checkes that the required packages are installed and, if they are not, installs them and is less labour intensive than installing the packages manually.

Comment 1 Jacquelynn East 2014-06-02 00:45:06 UTC
The guide already has instructions on how to work out what channels SystemTap needs installed. Will this not include the *-debuginfo channel, or should the script be edited somehow? If so, how?

Currently it says: 

To obtain a list of the channels SystemTap needs on the system, use the following script:

#! /bin/bash
pkg=`rpm -q --whatprovides "redhat-release"`
releasever=`rpm -q --qf "%{version}" $pkg`
variant=`echo $releasever | tr -d "[:digit:]" | tr "[:upper:]" "[:lower:]" `
if test -z "$variant"; then
  echo "No Red Hat Enterprise Linux variant (workstation/client/server) found."
  exit 1
fi
version=`echo $releasever | tr -cd "[:digit:]"`
base=`uname -i`
echo "rhel-$base-$variant-$version"
echo "rhel-$base-$variant-$version-debuginfo"
echo "rhel-$base-$variant-optional-$version-debuginfo"
echo "rhel-$base-$variant-optional-$version"

After the channels have been added, install the required -devel, debuginfo, and debuginfo-install arch packages for the kernel using the command debuginfo-install kernelname-version. Replace kernelname with the appropriate kernel variant name (for example, kernel-PAE), and version with the target kernel's version.


Let me know if something here is incorrect, thanks.

Comment 2 Brad Hubbard 2014-06-04 06:21:38 UTC
"After the channels have been added, install the required -devel, debuginfo, and debuginfo-install arch packages for the kernel using the command debuginfo-install kernelname-version."

I believe that should read...

"After the channels have been added, install the required -devel, debuginfo, and debuginfo-common-arch packages for the kernel using the command debuginfo-install kernelname-version."

The problem with the above is that running "debuginfo-install kernelname-version" will install the kernel-debuginfo and kernel-debuginfo-common-arch packages but not the kernel-devel package and that you have to get "version" right (if you use version, defaults to running kernel otherwise). Running "stap-prep" on the other hand installs both and you don't need to specify the version.

An example (this is with the debuginfo channels configured, only rhel-x86_64-server-6-debuginfo should be needed in this case).

# rpm -q kernel
kernel-2.6.32-431.3.1.el6.x86_64
kernel-firmware-2.6.32-431.3.1.el6.noarch
kernel-headers-2.6.32-431.3.1.el6.x86_64
kernel-abi-whitelists-2.6.32-431.3.1.el6.noarch
kernel-doc-2.6.32-431.3.1.el6.noarch

Method 1.

# debuginfo-install kernel
----8<----
Installed:
  kernel-debuginfo.x86_64 0:2.6.32-431.3.1.el6     
Dependency Installed:
  kernel-debuginfo-common-x86_64.x86_64 0:2.6.32-431.3.1.el6
---->8----

# rpm -qa kernel\*
kernel-2.6.32-431.3.1.el6.x86_64
kernel-debuginfo-2.6.32-431.3.1.el6.x86_64
kernel-debuginfo-common-x86_64-2.6.32-431.3.1.el6.x86_64
kernel-firmware-2.6.32-431.3.1.el6.noarch
kernel-headers-2.6.32-431.3.1.el6.x86_64
kernel-abi-whitelists-2.6.32-431.3.1.el6.noarch
kernel-doc-2.6.32-431.3.1.el6.noarch

Note that kernel-devel, which is a requirement of systemtap is *not* installed.

Reset.

# yum erase kernel-debuginfo-2.6.32-431.3.1.el6.x86_64 kernel-debuginfo-common-x86_64-2.6.32-431.3.1.el6.x86_64

Method 2.

# yum install systemtap

# stap-prep
Need to install the following packages:
kernel-devel-2.6.32-431.3.1.el6.x86_64
kernel-debuginfo-2.6.32-431.3.1.el6.x86_64

# rpm -qa kernel\*
kernel-debuginfo-2.6.32-431.3.1.el6.x86_64
kernel-2.6.32-431.3.1.el6.x86_64
kernel-firmware-2.6.32-431.3.1.el6.noarch
kernel-headers-2.6.32-431.3.1.el6.x86_64
kernel-abi-whitelists-2.6.32-431.3.1.el6.noarch
kernel-doc-2.6.32-431.3.1.el6.noarch
kernel-devel-2.6.32-431.3.1.el6.x86_64
kernel-devel-2.6.32-431.17.1.el6.x86_64
kernel-debuginfo-common-x86_64-2.6.32-431.3.1.el6.x86_64

The second option seems easier to me, but I guess there's not a great deal in it if you are perpared to install kernel-devl manually (but that needs to be documented too).

Comment 3 Laura Bailey 2015-05-20 02:03:27 UTC
Thank you for reporting this issue; we appreciate it.

However, I am closing this as WONTFIX because the SystemTap guides are being removed from the RHEL documentation suite as of RHEL 6.7 GA, and RHEL 7.2 GA. This will allow us to devote more time to more frequently used documentation.

If you use the SystemTap guides frequently, please feel free to contact us to discuss alternative solutions. You are welcome to contact me directly at lbailey.

Cheers,
Laura B