ubuntu22.04-bcc源码编译安装

ubuntu22.04-bcc源码编译安装

如在新系统中安装,确保安装了make,以及zlib,如果没有安装,请执行

sudo apt update
sudo apt install make
sudo apt install zlib1g-dev

一、bcc编译安装

1、安装依赖

sudo apt install -y bison build-essential cmake flex git libedit-dev liblzma-dev \libllvm12 llvm-12-dev libclang-12-dev python3 zlib1g-dev libelf-dev libfl-dev python3-distutils

2、git仓库获取

git clone https://github.com/iovisor/bcc.git

在拉取的含有bcc的目录执行

mkdir bcc/build; cd bcc/build
cmake ..

3、配置缺失的依赖

a、Could NOT find LibDebuginfod

在这里插入图片描述

通过源码编译安装(ubuntu22.04我选择0.189,ubuntu20.04选择0.188)

安装依赖包

sudo apt install -y g++ libmicrohttpd-dev libsqlite3-dev libarchive-dev libcurl4-openssl-dev gettext libzstd-dev pkg-config

下载LibDebuginfod依赖,依然通过编译安装

wget https://sourceware.org/elfutils/ftp/0.189/elfutils-0.189.tar.bz2
tar xvf elfutils-0.189.tar.bz2
mkdir elfutils-0.189/build 
cd elfutils-0.189/build/ 
../configure
make
sudo make install
sudo ldconfig
b、Could NOT find LuaJIT

在这里插入图片描述

通过源码编译安装,选择稳定的5.1版本

wget https://luajit.org/download/LuaJIT-2.0.5.tar.gz
tar -zxvf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5
make
sudo make install
c、缺失arping、netperf、iperf

在这里插入图片描述

sudo apt install arping netperf iperf

依赖配置完成,重新执行

cmake ..
make

报错缺失setuptools
在这里插入图片描述

执行

sudo apt install python3-pip

继续

make

在这里插入图片描述

依次执行下列命令

sudo make install
cmake -DPYTHON_CMD=python3 .. 
pushd src/python/
make
sudo make install
popd

到此安装完成,进行编译调试。

二、调试运行

默认安装在/usr/share/bcc

cd /usr/share/bcc/examples
ls
sudo python3 hello_world.py

报错缺失BPF,AttributeError: /lib/x86_64-linux-gnu/libbcc.so.0: undefined symbol: bpf_module_create_b
在这里插入图片描述

解决:打开bcc编译生成的bcc lib库,进行替换。

编译生成的库位置看自己的git拉取位置,本人在

cd /home/whj/Desktop/bcc/build/src/python/bcc-python3/bcc

在这里插入图片描述

python3的bcc库默认在

cd /usr/lib/python3/dist-packages/bcc

在这里插入图片描述

确定好位置,执行

sudo cp -r /home/whj/Desktop/bcc/build/src/python/bcc-python3/bcc/* /usr/lib/python3/dist-packages/bcc/

重新执行

cd /usr/share/bcc/examples
ls
sudo python3 hello_world.py

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值