事情的起因

  1. 实验需要安装 p4 环境
  2. 我考虑到我自己的电脑性能不足,因此打算在本机安装
  3. github上官方仓库的安装教程老旧,都是在 ubuntu14.04或者ubuntu16.04
  4. 我长时间用的linux系统是 ubuntu20.04

鉴于以上原因,我开始自己对p4安装的专研。。

这个是我自己写的shell脚本,已经在 ubuntu 20.04上测试通过

          • -

先放上官网

[p4 github](https://github.com/p4lang/)
[p4 官网](https://p4.org/)

然后是踩的坑

  1. 使用了anacond,使得后续找不到python库,另外使用sudo或root安装库会导致安装的位置混乱
  2. 按照官方教程安装,由于版本比较旧,导致源码编译不通过,通过更新编译不通过的源码包会因为p4各个模块的版本之间的依赖问题使得环境检测make check出错
  3. 计算机性能较差,编译卡死过很多次

解决方案

以p4c着手,倒推各个依赖源码的版本,当依赖的版本无法编译时,更新源码和依赖该源码的模块

以下是我自己写的shell脚本对应的解释
ubuntu 20.04 编译安装 p 详解教程
设置各个模块的版本(因为各个版本之间有特定的以来关系)


ubuntu 20.04 编译安装 p 详解教程
配置 ovs 并将安装日志写入对应文件

ubuntu 20.04 编译安装 p 详解教程
mininet 的安装,最后一行是 mininet 的测试,需要启动 ovs ( ovs-ctl start )

ubuntu 20.04 编译安装 p 详解教程
p4 安装中重要的依赖关系:protobuf

ubuntu 20.04 编译安装 p 详解教程
p4安装中重要的依赖关系:grpc

ubuntu 20.04 编译安装 p 详解教程
bmv2 和 PI 模块的重要依赖
中国计算机学会推
ubuntu 20.04 编译安装 p 详解教程
PI 模块的编译安装

ubuntu 20.04 编译安装 p 详解教程
bmv2 模块的编译安装

ubuntu 20.04 编译安装 p 详解教程
p4c 的编译安装

ubuntu 20.04 编译安装 p 详解教程
p4 使用参考文档

至此就安装好了,脚本中有些 make check 可以安装好再测试.....
因为如果之前安装过 p4,但出现了错,注释掉的那些 make check 可能导致脚本报错停止。。。
由于时间比较匆忙,没有做过多的 p4 介绍,,有时间再添加内容吧。。。

标签: 安装, ubuntu, 源码, 编译, 模块, 依赖, 详解

相关文章推荐

添加新评论,含*的栏目为必填