一、git地址:https://github.com/iovisor/bcc
二、用途:用于分析ebpf的相关问题,eg:查看程序都打开了哪些文件
三、安装步骤
1、版本要求:
主机内核为:5.4.109-1.el7.elrepo.x86_64,其它版本的主机内核没有测试过
安装版本bcc 0.24.0(备注:我尝试过安装当前最新的版本0.28.0,会报错误。可能跟我的gcc的版本有关系,没有验证)
gcc版本为:7.3.0(源码编译)(备注:虽然程序报错中提示,最低版本5.1,但是用5.1源码编译clang的时候会报错,升级到7.3以后就可以解决)下载地址:Index of /gnu/gcc/gcc-7.3.0/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
llvm及clang:直接下载llvm-project ,这个里面编译包含了llvm和clang,地址为:https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/llvm-project-10.0.1.tar.xz
2、安装操作:
1)先安装gcc
首先下载压缩包解压 tar -xf gcc-7.3.0.tar.xz && cd gcc-7.3.0 && ./configure --disable-multilib && make -j 10 && make install
备注:gcc默认会安装到/usr/local/bin
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
2)编译安装llvm及clang
首先下载压缩包解压 tar -xf llvm-project-10.0.1.tar.xz && mkdir llvm-project-10.0.1/build && cd llvm-project-10.0.1/build
由于llvm及clang在配置编译的时候,默认找的gcc及c++的路径为/usr/bin/gcc及/usr/bin/c++
所以在配置llvm及clang的时候,需要指定gcc及c++。
命令为:cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi" -G "Unix Makefiles" -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ ../llvm && make -j 10 && make install
3)编译安装bcc
yum install elfutils-libelf-devel
先安装python3 ,因为在编译的时候要找python3这个命令:yum -y install python3
首先下载压缩包解压 tar -xf bcc-src-with-submodule-24.tar.gz && mkdir bcc/build && cd bcc/build
同理第二步,配置编译命令为:cmake -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ .. && make -j 10 && make install
4)以上三个步骤已经将bcc的命令安装到 /usr/share/bcc/tools目录下,并且将python3的bcc包导入到python3的site-package包下,通过进入到python3然后执行from bcc import BPF验证是否已经成功
5)以上成功后,通过python3来使用bcc的文件 python3 /usr/share/bcc/tools/filetop 即可,如果不指定python3默认走的是python2就会报错