p4 编程语言环境配置

article/2025/10/19 16:18:21

文章目录

  • 前言
  • 建议直接看第二种方法
  • 第一种方法: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


http://chatgpt.dhexx.cn/article/fRLPCjfQ.shtml

相关文章

Python学习笔记 - Python语言概述和开发环境

一、Python简介 1.1 Python语言简史 Python由荷兰人吉多范罗苏姆(Guido van Rossum)于1989年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无聊时间,决心开发一门解释型程序语言。Python语言基于ABC教学语言开发的。1991年第一个Python解释器公…

西门子plc如何用c语言编程软件下载,s7一200编程软件下载安装

s7-200编程软件是专为西门子s7-200系列可编程控制器而设计开发的一款工业化编程工具,该工具基于Windows系统而开发,功能强大,既可用于开发用户程序,又可实时监控用户程序的执行状态,是西门子PLC用户不可缺少的开发工具。 软件特色 1、简单、易学,能够解决复杂的自动化任务…

2019常用的几种编程语言的简单介绍和特点以及应用领域

常用编程语言的特点以及应用 编程语言有很多种,以下就是对一些常用的编程语言的简单介绍和特点以及他们的一些应用领域。希望对你能有所帮助。 在介绍各种编程语言前,我们先来看一下下面这个图,从图中可以明显看出来,当前应用最…

【编程实践】编程语言之 Smalltalk

目录 Smalltalk 简介 什么是Smalltalk 理解Smalltalk 基础语法 方法与类 代码块 控制流

浅谈对话系统

随着社会发展,我们的生活中方方面面都充斥着各种对话系统,常见提供对话系统的组织有:运营商、电商、政府服务窗口等,刚才提到的例子一般都属于任务型对话系统。何为任务型的对话系统呢?指的就是用户通常通过该对话系统…

如何实现一个简单的对话系统

文章目录 前言一、为什么需要对话二、创建对话框1.创建Canvas2.创建Panel3.创建Text和Image4.Text介绍5.Image介绍 三、对话的实现(脚本)四、实际效果总结 前言 本文主要是对如何完成简单的游戏类对话做一个学习总结,新手菜勿喷 一、为什么需…

面向任务的对话系统

面向任务的对话系统 1.1 流水线方法1.1.1 语言理解1.1.2 对话状态跟踪1.1.3 策略学习1.1.4 自然语言生成 1.2 端到端方法 面向任务的对话系统一直是口语对话系统的重要分支。在本节中,我们将回顾面向任务的对话系统的流水线方法和端到端方法。 1.1 流水线方法 基于…

对话系统简单笔记

开放域对话系统:没有限定主题或明确目标,用户与系统之间自由对话。 特定域对话系统,面向具体任务。 如:任务型对话(siri),属于特定域,完成任务或动作,话轮数越少越好。…

自然语言处理与企业对话系统设计

原创:晏茜 资料来源:李俊 本文分享的主题分为两个部分,第一部分内容是关于企业级对话系统的简介,第二部分探讨对话系统和自然语言处理技术结合的领域。 1. 企业对话系统 我们首先来介绍一下企业级对话系统。谷歌的 CEO 桑达尔在 16 年曾发表言论,人工智能将通过各式各样…

定义对话系统

定义对话系统 一、定义对话系统的方法 以下方法论其实就是在定义对话系统,后面的 确定场景边界 梳理业务要素和知识库 撰写故事线 抽取对话流程 都是下面方法论的具体展开。 二、确定场景边界 1.创建机器人定位(机器人的性格定位) 2.明…

【对话系统】对话系统核心技术概要

概述 人机交互备受学术界的关注,人机对话是人机交互的核心。 对话系统是模拟人与人交流的计算机系统。 对话系统有很多分类方法。按照应用场景的不同,可分为开放域(闲聊式)和封闭域(检索式、知识问答式、任务式&…

UNITY 对话系统

1. 准备工作 创建一个画布(Canvas),画布中创建一个面板(Panel),面板中放个文本框(TEXT)和两个按钮(Button)(一个用于直接关闭,另一个…

最新对话系统综述

前言 首先介绍一篇对话系统领域综述最新的paper,写的非常好 2021年南洋理工大学发表的论文: https://arxiv.org/pdf/2105.04387.pdf 第一章:简要介绍对话系统和深度学习。 第二章:讨论现代对话系统中流行的神经模型及其相关工…

前沿重器[25] | 聊聊对话系统:多轮对话

前沿重器 栏目主要给大家分享各种大厂、顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 近期,我再次总结了我的历史文章…

智能对话系统之多轮对话

序言 以一周前的一条微博作为开始。一周前我讲:相对的,自然语言解析技术已经逐渐不再成为各家广义智能助理产品的核心竞争力,识别用户意图之后所提供的服务开始成为对话机器人差异化的核心。 百度:对话系统的组成 对于一个对话系…

对话系统 | (1) 任务导向型对话系统 -- 对话管理模型研究最新进展

原文链接 作者丨戴音培、虞晖华、蒋溢轩、唐呈光、李永彬、孙健 单位丨阿里巴巴-达摩院-小蜜Conversational AI团队,康奈尔大学 1. 对话管理模型背景 从人工智能研究的初期开始,人们就致力于开发高度智能化的人机对话系统。艾伦图灵(Alan …

对话系统笔记

原文链接:https://www.jiqizhixin.com/articles/2020-01-31-7 对话系统一般分为两种:任务型对话系统和闲聊型对话系统。本文主要讨论前者。 任务型对话系统,也称目标导向型对话系统,多用于垂直领域业务助理系统,如微…

深入浅出对话系统——任务型对话系统技术框架

任务型对话系统架构 比如,这是一个任务型订票系统的对话例子。 如果要我们实现一个这样的对话系统,其中有三个最大的难点:理解用户输入、记住对话历史信息、知道要问什么。 首先是要能理解用户的输入,知道用户想什么&#xff1b…

一文读懂智能对话系统

来源:机器学习算法全栈工程师 作者:蒙康 编辑:王抒伟 本文共6050字,建议阅读10分钟。本文带大家理解智能对话系统的研究方法以及未来趋势。 笔者在最近的研究中发现了一篇非常好的有关对话系统的论文,《A Survey on Di…

对话系统 | (8) 任务型对话系统概述

本篇博客主要参考/节选中科院自动化所王唯康博士的博士论文《任务型对话系统中对话管理方法研究》。 文章目录 1. 概述2. 基于管道的任务型对话系统2.1 语言理解模块2.2 对话管理模块2.3 语言生成模块 3. 端到端的任务型对话系统3.1 基于检索的任务型对话系统3.2 基于生成的任务…