Ubuntu16.04安装BCC教程
ubuntu18.04安装BCC教程可以参考我的另一篇博客:
https://blog.youkuaiyun.com/qq_43509129/article/details/119918445?spm=1001.2014.3001.5501
但是官网并没有ubuntu16.04详细安装BCC的教程。
官方安装方法:BCC安装官方网站
其中,对于ubuntu源码编译安装:
Install build dependencies
# Trusty (14.04 LTS) and older
VER=trusty
echo "deb http://llvm.org/apt/$VER/ llvm-toolchain-$VER-3.7 main
deb-src http://llvm.org/apt/$VER/ llvm-toolchain-$VER-3.7 main" | \
sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update
# For Bionic (18.04 LTS)
sudo apt-get -y install bison build-essential cmake flex git libedit-dev \
libllvm6.0 llvm-6.0-dev libclang-6.0-dev python zlib1g-dev libelf-dev libfl-dev python3-distutils
# For Eoan (19.10) or Focal (20.04.1 LTS)
sudo apt install -y bison build-essential cmake flex git libedit-dev \
libllvm7 llvm-7-dev libclang-7-dev python zlib1g-dev libelf-dev libfl-dev python3-distutils
# For other versions
sudo apt-get -y install bison build-essential cmake flex git libedit-dev \
libllvm3.7 llvm-3.7-dev libclang-3.7-dev python zlib1g-dev libelf-dev python3-distutils
# For Lua support
sudo apt-get -y install luajit luajit-5.1-dev
之中并没有16.04的对应步骤,如果按照“其他”处理:
# For other versions
sudo apt-get -y install bison build-essential cmake flex git libedit-dev \
libllvm3.7 llvm-3.7-dev libclang-3.7-dev python zlib1g-dev libelf-dev python3-distutils
发现在编译的时候make一直报错,提示是llvm3.7导致的问题,于是果断卸载llvm3.7。卸载的话去相应目录把llvm3.7的lib库和include头文件删除就好了。
最后得出结论:BCC要求llvm是3.7.1以上,但是呢,他官方提供的方法装的可能是3.7.0(猜测),似乎有点狗。
最后探索出来了ubuntu16.04安装BCC的方法
这里把python3–distutils去除了,可以单独安装python3。
# For Bionic (16.04 LTS)
sudo apt-get update
sudo apt-get -y install bison build-essential cmake flex git libedit-dev
libllvm6.0 llvm-6.0-dev libclang-6.0-dev python zlib1g-dev libelf-dev libfl-dev
git clone https://github.com/iovisor/bcc.git
mkdir bcc/build; cd bcc/build
cmake ..
make
sudo make install
之后编译对python的支持,依旧出了问题,不过至少支持C了,但是查看内核版本发现才Linux4.4(公司服务器的内核版本确实太低了),eBPF的很多函数支持不了,所以并不建议到ubuntu16.04装BCC,还是去ubuntu18.04装吧。