重點是需要內核的匹配
1.
首先先查看你的內核版本
uname -a
如果你的內核版本比較老的話,你需要去查找你需要的kernel-devel 的版本.
如果你想用yum去安裝,你可以用 yum install kernel-devel
注意:在最新的yum裡面安裝的總是最新的kernel-devel的版本,kernel-devel 需要匹配內核版本
比如: CentOS 5.3 用的是內核版本 2.6.18-128.el5
先下載 和內核版本一樣的對應的
http://ftp.cs.stanford.edu/pub/rpms/centos/5/x86_64/kernel-devel-2.6.18-128.el5.x86_64.rpm
然後安裝
rpm-ivh kernel-devel-2.6.18-128.el5.x86_64.rpm
安裝好kernel-devel會有內核的目錄在
/usr/src/kernels/2.6.18-128.el5-x86_64
2.
安裝systemtap
yum install systemtap
3. 安裝debuginfo 去
http://debuginfo.centos.org
尋找和你內核完全匹配的
kernel-debuginfo-common-xxxxx
kernel-debuginfo-xxxx
如果你找不到對應的內核版本的rpm,你可以去google 去尋找,可以使用RedHat的debuginfo rpm 包
象centos的官方網站裡只有
kernel-debuginfo-common-2.6.18-128.7.1.el5.centos.plus.x86_64.rpm
多了centos.plus 還是不能使用
去下載
http://rpm.pbone.net/index.php3/stat/4/idpl/13968571/dir/redhat_el_5/com/kernel-debuginfo-common-2.6.18-128.el5.x86_64.rpm.html
ftp://ftp.pbone.net/mirror/ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/x86_64/Debuginfo/kernel-debuginfo-2.6.18-128.el5.x86_64.rpm
安裝rpm -ivh kernel-debuginfo*.rpm
如何測試:
stap -ve 'probe begin { log("hello world") exit() }'
官方wiki:
http://sourceware.org/systemtap/wiki/SystemTapOnCentOS