由于毕设涉及eBPF相关,故自存一个环境配置流程以便参考。
1. 换源
本人偷懒直接使用之前某课程的虚拟机配置,首先将它换成阿里源(或者其他国内源)以便后续使用。
阿里源地址参考:阿里源,选择相应的版本,复制url。
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
打开虚拟机终端输入sudo vim /etc/apt/sources.list
,打开源文件将复制的url替换进去,:wq!
保存退出,输入sudo apt-get update
&&sudo apt-get upgrade
刷新源。
若出现如下报错(该报错是某次换清华源时的报错):
因为默认的源是 http 的,但是准备使用的镜像源是 https 的,所以需要额外的安装有关 https 的包。安装:sudo apt install apt-transport-https
&&sudo apt install ca-certificates
这两个包,再进行刷新源操作即可。
2. 安装llvm和clang
参考链接:LLVM Debian/Ubuntu nightly packages
在链接中找到虚拟机系统所对应的代码,即Ubuntu Focal (20.04) LTS,将对应代码加入源码文件(sources.list)中。
此处有两种llvm版本选择,我选择17,同时可以注释镜像src加快apt update速度
#Focal (20.04) LTS - Last update : Mon, 05 Feb 2024 15:31:07 UTC / Revision: 20240204053155+114a33be4751
deb http://apt.llvm.org/focal/ llvm-toolchain-focal main
#deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal main
# 17
deb http://apt.llvm.org/focal/ llvm-toolchain-focal-17 main
#deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-17 main
向下找到 Install (stable branch) 部分(与需要下载的llvm17对应)
sudo wget --no-check-certificate -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
此处我与参考链接命令不同的原因:直接运行参考命令会报错,可酌情使用。
更新软件源sudo apt update
&&sudo apt upgrade
To install just clang, lld and lldb (17 release):
sudo apt-get install clang-17 lldb-17 lld-17
To install all key packages: (按需安装)
# LLVM
sudo apt-get install libllvm-17-ocaml-dev libllvm17 llvm-17 llvm-17-dev llvm-17-doc llvm-17-examples llvm-17-runtime
# Clang and co
sudo apt-get install clang-17 clang-tools-17 clang-17-doc libclang-common-17-dev libclang-17-dev libclang1-17 clang-format-17 python3-clang-17 clangd-17 clang-tidy-17
配置环境变量cd ~
&&sudo vim .bashrc
,将下面两行加到文件中
export PATH=$PATH:/usr/lib/llvm-17/bin
export LD_LIBRARY=/usr/lib/llvm-17/lib
保存文件并退出,source .bashrc
使环境变量立即生效。
最后可通过llvm-as --version
&&clang -v
检查安装是否成功。
3. 安装BCC
参考链接:Ubuntu安装BCC&&官方文档
安装依赖
# For Eoan (19.10) or Focal (20.04.1 LTS)
sudo apt install -y bison build-essential cmake flex git libedit-dev \
libllvm17 llvm-17-dev libclang-17-dev python zlib1g-dev libelf-dev libfl-dev
从Github上下载源码进行安装
sudo git clone https://github.com/iovisor/bcc.git
sudo mkdir bcc/build; cd bcc/build
cmake .. #若出现报错(有些模块未安装)则自行补充安装
make
sudo make install
cmake -DPYTHON_CMD=python3 .. # build python3 binding
pushd src/python/
make
sudo make install
popd
#记录一下执行make时某一个报错的解决方法
检查一下python的版本要与当前版本一致
ls -l `which python`
# lrwxrwxrwx 1 root root 7 4月 15 2020 /usr/bin/python -> python2
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.8 /usr/bin/py
工具测试