文章目录

  • 前言
  • 建议直接看第二种方法
  • 第一种方法:p4官方教程里的方法(不建议,我没安装成功)
    • 1.1 下载并安装 Virtual Box
    • 1.2 下载并安装 Vagrant
    • 1.3 利用 Vagrant 安装虚拟机
  • 第二种方法:直接导入已经配置好的虚拟镜像文件
    • 2.1 下载并安装 Virtual Box
    • 2.2 导入镜像文件
    • 2.3 (记录)其他镜像文件1
    • 2.4 (记录)其他镜像文件2
  • Reference

前言

p4 (官网链接:https://p4.org/)是一种用于网络设备的领域特定语言,指定数据平面设备(交换机、网卡、路由器、过滤器等)如何处理包。

本文主要介绍一下 p4 这门编程语言的虚拟机环境配置,供小伙伴们参考。

下面介绍两种环境配置方法:

第一种是p4官方教程里的方法(由于p4的环境配置复杂,所以官方直接给我们打包好了安装虚拟机的一系列文件,我们只需要按照步骤操作就好。不建议用这种方法,因为很难安装成功,但是在这里我还是要记录一下安装步骤,供大家参考);

第二种方法是直接导入已经配置好的虚拟镜像文件,一般为 .ova 或者 .ovf 文件,下文中有获取链接。

建议直接看第二种方法

如果不想了解官网安装步骤的话可以直接看第二种方法

第一种方法:p4官方教程里的方法(不建议,我没安装成功)

打开 p4 的官方教程:https://github.com/p4lang/tutorials,你会看到下面这个界面,这里面有p4语言的相关练习exercises、安装虚拟环境所必要的文件等。

我们直接看下面的README.md,并且翻到下面这一部分:


按照红框里的步骤,逐一下载所需要的软件并执行相关操作:

1.1 下载并安装 Virtual Box

下载链接:https://www.virtualbox.org/wiki/Downloads,点击这个链接会看到下面的页面,由于我的电脑是Window系统,所以我选择Windows hosts,点击即可下载。其他系统的小伙伴可以自行搜索如何下载安装。

0、下载好了,双击安装:


1、点击下一步

2、点击浏览更改安装位置,尽量不要装在C盘(系统盘),这里我装在了 D:\VirtualBox\ 目录下,点击下一步:

3、点击下一步:

4、点击 是

5、安装完成,点击完成并打开VirtualBox:

6、打开 全局设定

7、修改默认虚拟电脑位置,就是给我们后面安装的虚拟机设定一个安装目录,并且以后我们的虚拟机都会安装到这个目录下。确保这个目录有足够的存储空间,最好不要在C盘(系统盘),这里我放在了D:\VirtualBos VMs这个目录下,然后点击 OK:


8、然后关闭VirtualBox,我们安装VirtualBox的工作就结束啦!!

1.2 下载并安装 Vagrant

下载链接:https://www.vagrantup.com/downloads
根据系统类型选择要下载的文件,我是win10 x86 64位的,所以选择了 Amd64,不过我试了另外一个686的,好像效果是一样的,不太清楚他们两个的区别是什么,反正随便下载一个就好啦

0、下载好了,双击安装

1、点击Next

2、接受,Next

3、更改安装文件夹,最好不要在C盘,Next

4、点击Install

5、等待一会就安装好了

6、安装好了,Finish

7、之后会弹出下面这个窗口,点击Yes重启计算机或者自己手动重启计算机

Vagrant 是没有图形界面的,所以安装完成后也没有桌面快捷方式。开机之后,打开终端,输入vagrant version,这样可以判断是否安装成功

8、通过 Vagrant 创建虚机需要先导入镜像文件,它们默认存储的位置在用户目录下的 .vagrant.d 目录下,对于 Windows 系统来说,就是 C:\Users\用户名\.vagrant.d

如果后续可能会用到较多镜像,或者你的 C 盘空间比较紧缺,可以通过设置环境变量VAGRANT_HOME 来设置该目录。

打开系统设置,点击关于,然后点击右侧地高级系统设置

点击环境变量

新建系统变量


在 Windows 系统中,可以这样操作:新建系统环境变量,环境变量名为 VAGRANT_HOME,变量值为 D:\VirtualBos VMs\.vagrant.d ,最后这个.vagrant.d 目录名称不是必须的,但是建议保持一致,这样一眼看上去就能知道这个目录是做什么用处的了。(可以注意到,这里的路径和刚刚我们安装Virtual Box时在全局设定中设置的虚拟机存放位置是一样的,这样做可以让我们以后更方便地管理自己的虚拟机)

然后一路确定就好了,为了保险起见,最好再重启一下计算机。

到这里,Vagrant 就安装好了。

1.3 利用 Vagrant 安装虚拟机

首先我们要去官网下载一下相关文件:https://github.com/p4lang/tutorials


下载好之后解压,进入下面这个文件夹

输入 cmd ,回车进入终端:


如下:

以上步骤相信大家都能顺利完成

接下来的步骤要保证有非常稳定的网络环境
在终端输入 vagrant up ,接下来就是漫长的等待过程,在此期间,Virtual Box会被唤醒并自动新建一个虚拟机,如果过顺利的话,按照官方说法,大概一两个小时之后,我们虚拟机就会完全安装完成,这个虚拟机里有我们运行p4语言所需要的所有环境。当然,这只是理论情况。


然而遗憾的是,我并没有在安装过程中顺利下载所有资源,从而导致虚拟机安装失败。当初我以为是网络不稳定,但是换了几个不同的网络之后,还是不行,这时我已经安装了3次了,每次vagrant up 之后都要等将近两个小时才能出结果,每次都是在下面这个界面卡一个多小时,然后报一大堆获取资源出错的错误,可想而知内心很崩溃。

最后仔细分析了报错的原因,发现有些资源的获取链接不是国内的,所以要FQ才能下载这些资源,事实证明也确实是这个原因,但是由于FQ后网络不稳定,试了几次还是没有成功,最后果断放弃。

如果有大佬安装成功了,希望可以克隆一份放在评论区,蟹蟹!!!

第二种方法:直接导入已经配置好的虚拟镜像文件

由于用第一种方法没有安装成功,我就在网上搜索有没有已经安装好的镜像文件,这样就可以用Virtual Box直接导入使用了。

最后在一位大佬的学习笔记中发现了一个配置好的镜像文件(链接:https://www.zhihu.com/people/yaoj-x/posts),他的这篇文章中给的链接时谷歌云盘,我下了好长时间才下载成功,下面是网盘链接,方便大家自取:

链接:https://pan.baidu.com/s/10JgFwffsPCyw6g7TVp8Asg
提取码:2de6
--来自百度网盘超级会员V4的分享

另外,这位大佬的笔记也是非常好,非常适合入门p4,推荐大家去看一下。

接下来介绍具体的安装步骤。

2.1 下载并安装 Virtual Box

这里和 1.1 中的步骤是一样的,就不再重复写了。

2.2 导入镜像文件

下载好上面网盘里的文件


打开Virtual Box,点击导入虚拟机

选择我们刚刚下载好的p4-learning.ova文件


点击导入


大概十几分钟就能完成


安装好了,点击启动(需要等待几分钟)

启动之后大概是这个样子

打开终端,输入git clone https://github.com/p4lang/tutorials,下载我们想要的p4教程

这时我们的主文件夹里会出现一个tutorial目录


tutorial目录里的exercises目录就是我们想要的p4练习

接下来就可以愉快地学习p4啦!!!

唯一遗憾的是,官方给的最新版是Ubuntu 20,而这个是Ubuntu 16,不过没关系啦,对于学习p4来说已经够用了。


2.3 (记录)其他镜像文件1

与此同时,从一位学长那里也要到了一份镜像文件,导入之后发现同样是Ununtu 16版本的,和2.2中的一样,只是文件格式和2.2中的不一样,就不再分享资源了。下面主要记录一下安装过程。

安装好Virtual Box(安装步骤见1.1)之后,就可以导入文件了,学长给的是一个压缩包,解压之后,如下:

打开Virtual Box,点击导入


选择刚刚文件夹中的这个文件:




大概十几分钟就安装好了,然后启动虚拟机(启动虚拟机也需要几分钟时间),打开之后是这个样子的:


可以看到,主目录下有一个tutorials文件夹,也就是官方的教程,据学长说这个他已经做过了,所以我们要再下载一份新的没做过的。打开终端,输入如下命令:git clone https://github.com/p4lang/tutorials

然后就会报错,大概意思就是这个目录已经存在,所以我们要把之前的tutorials目录删除或者重命名,这里我重命名为tutorials00



再次输入git clone https://github.com/p4lang/tutorials

这样就下载好了,这个新的tutorials文件夹内有我们想要的练习题

2.4 (记录)其他镜像文件2

https://www.cnblogs.com/gejuncheng/p/16178961.html
Virtual Box 和 Vagrant的安装与下载可以参考 1.1 和 1.2


Reference

https://p4.org/learn/
https://blog.csdn.net/class_c/article/details/120623743
https://www.zhihu.com/people/yaoj-x/posts
https://zhuanlan.zhihu.com/p/259833884
https://github.com/p4lang/tutorials

p4 编程语言环境配置相关推荐

  1. 【编程语言】JAVA | Windows10下JAVA的环境配置(绝对路径)

    转自:https://blog.csdn.net/qq_42945310/article/details/82894463 感谢博主 前言:网上大多是使用相对路径来进行JAVA环境配置的教程,笔者只是 ...

  2. python与数据思维基础目录_python入门知识思维路线图及环境配置

    python知识准备 掌握Python基础语法,熟悉常用API,是后面进行自动化学习的必要条件. 本章节主要内容包括 python基本语法 常用数据结构 常用操作 面向对象编程 文件处理 数据库处理 ...

  3. 深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) By 李泽南2017年6月26日 15:57 本周一(6 月 19 日)机器之心发表文章《我的深度学习开发环境详解:Te

    深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) 机器之心 2017-06-25 12:27 阅读:108 摘要:参与:李泽南.李亚洲本周一(6月19日)机器之心发表文章<我的深 ...

  4. 学习笔记Spark(六)—— Spark SQL应用(1)—— Spark SQL简介、环境配置

    一.Spark SQL简介 1.1.Spark SQL特性 Spark SQL是Spark Core之上的一个组件,它引入了一个称为SchemaRDD的新- 数据抽象,它为结构化和半结构化数据提供支持 ...

  5. rabbitmq java实例_RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)

    转载http://blog.csdn.net/u013142781 一.消息队列使用场景或者其好处 消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式 ...

  6. Go程序开发---Go环境配置:CentOS6.5+Go1.8标准包安装

    1.Go安装 1.1Go的三种安装方式 Go有多种安装方式,可以选择自己习惯的方式进行,这里介绍三种安装方式: 1)Go源码安装 2)Go标准包安装 3)第三方工具安装 这里主要介绍下Go标准包在Ce ...

  7. Python 基础入门--简介和环境配置

    2019 年第 32 篇,总 56 篇文章 本文大约 1w 字,建议收藏阅读 上周结束了如何构造一个机器学习项目的系列文章,当然还有一篇简单的总结以及介绍一些入门的学习资料,不过还在整理,应该这周内会 ...

  8. Kinect开发学习笔记之(三)Kinect开发环境配置

    Kinect开发学习笔记之(三)Kinect开发环境配置 zouxy09@qq.com http://blog.csdn.net/zouxy09 我的Kinect开发平台是: Win7 x86 + V ...

  9. python安装方法_Python基础入门——简介和环境配置,超实用!

    作者 | kbsc13 来源 | 机器学习与计算机视觉(ID:AI_Developer) 上周结束了如何构造一个机器学习项目的系列文章,当然还有一篇简单的总结以及介绍一些入门的学习资料,不过还在整理, ...

最新文章

  1. NR 5G PDCP分组数据汇聚协议
  2. ASPNET开源项目
  3. ios浏览器不支持onblur事件
  4. 项目既有vue又有html,01-vue指令
  5. HTML多选mysql,html多选下拉框 | 学步园
  6. UML应用:业务内涵的分析抽象amp;表达
  7. 特征选择 ReliefF算法
  8. android开发中出现R.java was modified manually! Reverting to generated version!问题的解决方法...
  9. 使用Diskgenius将U盘分区,分为启动盘和文件存储两大功能详解
  10. 十大铁饭碗职业排行,哪些行业最吃香?外行看热闹,内行看门道
  11. oracle dba 培训教程
  12. 手机微信群控源码二次开发
  13. 一文读懂 非root用户正确编译安装 protobuf —— 附 CMakeLists.txt 配置
  14. 电商小学期 - 智能家居网站结项报告
  15. Cannot access memory at adress 0xbf9
  16. 从CSDN到个人博客空间
  17. 知识变现海哥|知识变现五大赛道,你选哪一道?
  18. Boxes Packing
  19. 托管IDC 机房的的几点优势
  20. 基于 Jenkins 构建的团队如何使用 Zadig 丝滑交付

热门文章

  1. 【案例23】NCC2005 was集群报非法登录的解决方案
  2. 二、考研数据结构笔记——绪论(理解数据结构,算法,时间复杂度计算做题技巧)
  3. 联想台式机计算机接口,如果不能使用Lenovo台式计算机的USB接口怎么办
  4. LTE:PHICH物理层处理过程及资源映射
  5. c语言求解连续数列编程题,数列-题解(C语言代码)
  6. 2017新浪微整形年度大数据报告
  7. Hello New World 写在 Conflux 网络 Tethys 上线之际
  8. 英文字母的大小写转换
  9. python校验用户登录信息
  10. 苹果EMS物流管理系统