python - 如果从源代码构建 BCC 后 "sudo/usr/share/bcc/tools/execsnoop"失败,我该怎么办?

标签 python c++ linux ebpf bcc-bpf

从源代码构建 BCC 并运行测试“sudo/usr/share/bcc/tools/execsnoop”后,我得到以下输出:

回溯(最近一次调用最后一次): 文件“/usr/share/bcc/tools/execsnoop”,第 21 行,位于 从密件抄送导入BPF 导入错误:没有名为 bcc 的模块

这意味着什么以及可以采取什么措施来补救?

安装依赖项后,我遵循以下步骤:

git clone https://github.com/iovisor/bcc.git
mkdir bcc/build; cd bcc/build
# python2 can be substituted here, depending on your environment
cmake -DPYTHON_CMD=python3 ..
make && sudo make install

sudo /usr/share/bcc/tools/execsnoop #Test

最佳答案

这是由于 python2 设置为默认 python 导致的。

$ ls -l `which python`
lrwxrwxrwx 1 root root 7 Mar  4  2019 /usr/bin/python -> python2

有一种方法可以更改所有出现的

#!/usr/bin/python#!/usr/bin/python3

sudo ln -s /usr/bin/python3 /usr/bin/python

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 100
update-alternatives: using /usr/bin/python3.7 to provide /usr/bin/python (python) in auto mode

这会将 python 更改为替代 python

$ ls -l `which python`
lrwxrwxrwx 1 root root 24 Nov 29 20:21 /usr/bin/python -> /etc/alternatives/python

关于python - 如果从源代码构建 BCC 后 "sudo/usr/share/bcc/tools/execsnoop"失败,我该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65043495/

相关文章:

python-3.x - 如何在Python中的不同平台上创建相同的目录路径?

python - 我在哪里输入我的代码(Pyside2)?

python - 创建具有固定值的列

c++ - 当我的结构中的任何变量发生变化时,有什么方法可以触发事件?

linux - 超过一定大小 (~1450) 的 TCP 消息获取 "stuck"

linux - Linux 中的 Cut 和 Awk 命令

python - 在 Python/PySpark 中 Spark 复制数据框列的最佳实践?

python - 类型错误 : ufunc 'add' did not contain a loop with signature matching types dtype

c++ - 处理延迟代码

c++ - 命名管道程序在一台计算机上工作,服务器在另一台计算机上停止工作