Centos7编译安装llvm、clang、bcc-tools
研究这个工具的安装花了1天多时间,终于搞定了。在centos7.2和centos7.6上能成功安装。特此记录一下
官方安装文档
https://github.com/iovisor/bcc/blob/master/INSTALL.md#centos---source
---用yum的方式,bcc版本是0.10,使用时会报错。
---用编译的方式,遇到gcc版本过低问题,即使提升了版本也没有改变,查找了很多博客,都没有相关说明,最后看到在命令里指定gcc路径来编译,试了还是报错,但有了改变,再进行编译就好了,详细看下文。
一、关于内核
查看正在使用的内核版本,centos7.2和centos7.6都是3.10,由官方文档所知内核要大于4.1(不升级内核不知道行不行,没实验过)
uname -r
centos7升级内核
导入仓库源
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
安装源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
查看可安装的软件包
yum --enablerepo="elrepo-kernel" list --showduplicates | sort -r | grep kernel-lt.x86_64
安装LT版本(5.4)
yum --enablerepo=elrepo-kernel install kernel-lt-devel kernel-lt -y
查看现有内核启动顺序
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
设置启动序号
grub2-set-default 0
#重启
reboot
#检查内核版本,显示5.4.274-1.el7.elrepo.x86_64
uname -r
二、编译安装llvm、clang、bcc-tools
安装依赖
yum install -y epel-release
yum update -y
yum groupinstall -y "Development tools"
yum install -y elfutils-libelf-devel cmake3 git bison flex ncurses-devel
yum install -y luajit luajit-devel # for Lua support
下载llvm和clang,编译,全程需要4-5个小时(2核2G),所在目录/root
curl -LO https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/llvm-10.0.1.src.tar.xz
curl -LO https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/clang-10.0.1.src.tar.xz
tar -xf clang-10.0.1.src.tar.xz
tar -xf llvm-10.0.1.src.tar.xz
mkdir clang-build
mkdir llvm-build
cd llvm-build
cmake3 -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" -DCMAKE_BUILD_TYPE=Release ../llvm-10.0.1.src
报错:
-- Could NOT find Z3: Found unsuitable version "0.0.0", but required is at least "4.7.1" (found Z3_LIBRARIES-NOTFOUND)
CMake Error at cmake/modules/CheckCompilerVersion.cmake:38 (message):
Host GCC version must be at least 5.1, your version is 4.8.5.
Call Stack (most recent call first):
cmake/modules/CheckCompilerVersion.cmake:48 (check_compiler_version)
cmake/config-ix.cmake:13 (include)
CMakeLists.txt:623 (include)
原因是gcc
升级gcc,gcc -v显示版本是7
gcc --v
yum -y install centos-release-scl
yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils
echo "source /opt/rh/devtoolset-7/enable" >>/etc/profile
scl enable devtoolset-7 bash
cmake3 -D CMAKE_C_COMPILER=/path/to/gcc/bin/gcc -D CMAKE_CXX_COMPILER=/path/to/gcc/bin/g++ -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" -DCMAKE_BUILD_TYPE=Release ../llvm-10.0.1.src
结果还是报错,但可以执行下面的命令,从执行日志看,gcc用的已经是版本7
cmake3 -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" -DCMAKE_BUILD_TYPE=Release ../llvm-10.0.1.src
make
make install
cd ..
cd clang-build
cmake3 -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" -DCMAKE_BUILD_TYPE=Release ../clang-10.0.1.src
make
make install
安装bcc
git clone https://github.com/iovisor/bcc.git
mkdir bcc/build; cd bcc/build
cmake3 ..
make
报错:
make[2]: *** [src/cc/CMakeFiles/bpf-static.dir/build.make:213:src/cc/CMakeFiles/bpf-static.dir/libbpf/src/libbpf.c.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:917:src/cc/CMakeFiles/bpf-static.dir/all] 错误 2
make: *** [Makefile:161:all] 错误 2
root目录下删掉bcc
rm -rf bcc
访问:https://github.com/iovisor/bcc/releases
下载包bcc-src-with-submodule.tar.gz(0.30版本)到/root目录下
tar -zxvf bcc-src-with-submodule.tar.gz
cd bcc
mkdir build
cmake3 ..
make
make install
使用
/usr/share/bcc/tools/cachetop
/usr/share/bcc/tools/cachestat 1 10
或配置路径
export PATH=$PATH:/usr/share/bcc/tools
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库