Ubuntu/Centos多方法安装mininet

2023-10-29

Ubuntu安装

方法一:apt 安装

sudo apt-get install mininet

方法二:源码安装

  • 下载源码
git clone git://github.com/mininet/mininet
  • 查看并选择版本
cd mininet/
git tag
git checkout <release tag>      #这里的release tag就是你想选取的版本
  • 开始安装
bash mininet/util/install.sh [options]
-a:  全部安装
-nfv:仅安装MINIENT OPENFLOW引用多SWITCH 和OPEN VSWITCH
-s mydir: 指定目录

Centos安装

方法一:

安装依赖:

yum install python-networkx
yum install telnet
yum install libatomic

安装mininet

# 下载安装包
wget http://downloads.naulinux.ru/pub/NauLinux/7.5/x86_64/Extras/RPMS/Projects/OpenFlow/mininet-2.2.2-2.el7.x86_64.rpm
# 进行安装
rpm -ivh mininet-2.2.2-2.el7.x86_64.rpm 

安装openswitch

# 下载安装包
wget http://downloads.naulinux.ru/pub/NauLinux/7.5/x86_64/Extras/RPMS/Projects/OpenFlow/openvswitch-2.5.0-2.el7.x86_64.rpm
# 进行安装
rpm -ivh openvswitch-2.5.0-2.el7.x86_64.rpm
# 启动服务
service openvswitch start

方法二:yum 安装

首先安装Mininet

  • 创建文件/etc/yum.repos.d/naulinux-extras.repo

[naulinux-extras]
name=NauLinux Extras
baseurl=http://downloads.naulinux.ru/pub/NauLinux/6.3/$basearch/Extras/RPMS/
enabled=0
gpgcheck=1
gpgkey=http://downloads.naulinux.ru/pub/NauLinux/RPM-GPG-KEY-linux-ink

  • 开始安装
yum --enablerepo=naulinux-extras --nogpgcheck install mininet

然后安装Open Switch

利用上述文件安装

yum --enablerepo=naulinux-extras install openvswitch

启动 openvswitch 服务:

service openvswitch start

方法三:源码安装

  • 下载源码
git clone git://github.com/mininet/mininet
  • 修改install.sh
    因为默认mininet支持的系统是Ubuntu|Debian|Fedora|RedHatEnterpriseServer,不支持Centos所以要修改install.sh使其支持。
# 1.在install.sh中fedora前加上
#  在‘test -e /etc/fedora-release && DIST=”Fedora”‘这一行之前添加如下内容
test -e /etc/centos-release && DIST="CentOS"
if [ "$DIST" = "CentOS" ]; then
    install='sudo yum -y install'
    remove='sudo yum -y erase'
    pkginst='sudo rpm -ivh'
    # Prereqs for this script
    if ! which lsb_release &> /dev/null; then
        $install redhat-lsb-core
    fi
fi


# 2.修改
# 在以下语句的选项中添加CentOs
# 或者直接把以下语句全部注释掉

if ! echo $DIST | egrep 'Ubuntu|Debian|Fedora|CentOS'; then
    echo "Install.sh currently only supports Ubuntu, Debian and Fedora."
    exit 1
fi
  • 查看并选择版本
cd mininet/
git tag
git checkout <release tag>      #这里的release tag就是你想选取的版本
  • 开始安装
bash mininet/util/install.sh [options]
-a:  全部安装
-nfv:仅安装MINIENT OPENFLOW引用多SWITCH 和OPEN VSWITCH
-s mydir: 指定目录

测试

命令行直接输入mn命令就能打开mininet

出现mininet> 等待输入语句就代表着已经进入了mininet的命令行模式了。默认生成了
一个简单的拓扑,包括两个host和一个switch

  • help命令可以查看帮助
  • iperf可以打开网络性能测试工具
  • quit 或 exit 可以退出 mininet

可视化
Mininet 2.2.0之后的版本内置了一个mininet可视化工具miniedit,使用Mininet可视化界面方便了用户自定义拓扑创建,为不熟悉python脚本的使用者创造了更简单的环境,界面直观,可操作性强。
Mininet程序写在一个python文件miniedit.py 中,直接运行即可。

路径一般是:xxx/mininet/examples/miniedit.py

找不到的话可以首先搜索路径:

locate miniedit.py 

记录下返回的xxx/mininet/examples/miniedit.py形式的路径。

然后用Python2.x 运行

查看系统可用的python版本:输入python后按两次tab即可。

cd xxx/mininet/examples
python2 miniedit.py

python2 安装tkinter方法:sudo apt-get install python-tk 或者 yum install tkinter

然后就可以在可视化工具miniedit下进行编辑了。

运行报错:couldn’t read bitmap file "/usr/include/X11/bitmaps/left_ptr 解决方法:从其它电脑(建议Ubuntu)找到bitmaps文件夹拷贝过去即可。或者根据下面的内容新建文件手动填进去。

/usr/include/X11/bitmaps/left_ptr 文件内容:

#define left_ptr_width 16
#define left_ptr_height 16
#define left_ptr_x_hot 3
#define left_ptr_y_hot 1
static char left_ptr_bits[] = {
   0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x38, 0x00, 0x78, 0x00, 0xf8, 0x00,
   0xf8, 0x01, 0xf8, 0x03, 0xf8, 0x07, 0xf8, 0x00, 0xd8, 0x00, 0x88, 0x01,
   0x80, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu/Centos多方法安装mininet 的相关文章

  • 套接字:监听积压并接受

    listen sock backlog 在我看来 参数backlog限制连接数量 这是我的测试代码 server initialize the sockaddr of server server sin family AF INET ser
  • InstaPy:“错误,无法确定 64 位 Linux 的正确文件名”

    有人知道如何解决或解决这个问题吗 来自控制台的堆栈跟踪 执行后报告错误 InstaPy Version 0 6 9 Workspace in use home zanettra InstaPy Error unable to determi
  • 如何让 clangd 转向 c++20

    当没有其他信息时 如何让 clangd 回退到 c 20 例如 在第一次构建之前 cmake 可以生成一个 这是在带有最新 LLVM 的 Arch Linux 上 这是通过 Emacs LSP 运行的 但这应该没有什么区别 你可以加 Com
  • 伊迪德信息

    重新定义问题 有什么方法可以获取所连接显示器的序列号吗 我想收集显示器的Eid信息 当我使用 logverbose 选项运行 X 时 我可以从 xorg 0 log 文件中获取它 但问题是 如果我切换显示器 拔出当前显示器 然后插入另一个显
  • 为什么在 Linux 上字符串文字的内存地址与其他字符串文字的内存地址如此不同?

    我注意到字符串文字在内存中的地址与其他常量和变量 Linux 操作系统 非常不同 它们有许多前导零 未打印 Example const char h Hi int i 1 printf p n void h printf p n void
  • Linux 中热插拔设备时检测设备是否存在

    我正在运行 SPIcode http lxr free electrons com source drivers spi spi omap2 mcspi c在熊猫板上 我想知道其中的哪个功能code http lxr free electr
  • 如何在Python中独立于语言安装(linux)获取用户桌面路径

    我找到了 如何找到用户桌面的路径 的几个问题和答案 但在我看来它们都已失效 至少我找到的那些 原因是 如果用户安装的 Linux 不是英语 他或她的桌面很可能位于除 Desktop 例如 对于瑞典语 我相信它是在 Skrivbord 谁知道
  • 伪分布式模式下的 Hadoop。连接被拒绝

    P S 请不要将此标记为重复 Hi 我一直在尝试以伪分布式模式设置和运行 Hadoop 当我运行 start all sh 脚本时 我得到以下输出 starting namenode logging to home raveesh Hado
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • 未找到命令“ember”

    看来我搞砸了 ember cli 安装 我已经使用 sudo 安装了 npm 但是在阅读了 npm 上 ember cli 和 sudo 的一些问题后 我按照此处的说明卸载并重新安装https gist github com isaacs
  • 在 WSL Ubuntu 20.04 上安装 npm 后,我收到消息“/usr/bin/env: ‘bash\r’: No such file or directory”

    运行时我看到以下消息npm install or npm来自终端的命令 执行中node按预期工作 gt npm install usr bin env bash r No such file or directory 2023 年 7 月更
  • sleep 0 有特殊含义吗?

    我看到很多用法sleep 0在我的一个客户项目中 代码看起来像这样 while true sleep 0 end 阅读一些像这样的答案this https stackoverflow com questions 3727420 signif
  • 无需 cron 在后台发送邮件

    我想知道是否有一种方法可以运行 PHP 循环 以便在后台向订阅者发送几百封电子邮件 我的目标是格式化新闻通讯 单击发送 然后关闭浏览器或更改页面 当然 发送电子邮件的实际过程将在后台运行 不会因浏览器关闭而中断 我知道这可以通过 cron
  • 操作错误:尝试在 ubuntu 服务器中写入只读数据库

    我正在使用 FlaskApp 运行mod wsgi and apache2在 Ubuntu 服务器上 我尝试运行烧瓶应用程序localhost成功 然后部署到ubuntu服务器上 但是当我尝试更新数据库时 出现错误 Failed to up
  • 如何在特定 systemd 服务重新启动时触发自定义脚本运行

    我想知道如何安排自定义脚本在重新启动服务时运行 我的用例是 每当重新启动 Tomcat 服务时 我都必须运行多个命令 我想知道是否有一种方法可以编写脚本并安排它在重新启动 Tomcat 服务时运行 我已将 tomcat 脚本设置为 syst
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • arm-linux-gnueabi 编译器选项

    我在用 ARM Linux gnueabi gcc在 Linux 中为 ARM 处理器编译 C 程序 但是 我不确定它编译的默认 ARM 模式是什么 例如 对于 C 代码 test c unsigned int main return 0x
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 在 Linux 中禁用历史记录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 要在 Linux 环境中禁用历史记录 我执行了以下命令 export HISTFILESIZE 0 export HISTSIZE 0 u
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte

随机推荐

  • Exchange2010批量删除邮件

    在Exchange2010里若要删除某个用户发出的邮件 可以通过EMC控制台授予管理员 管理完全访问权限 通过OWA登录到用户邮箱删除 另外 更简便的方法为使用Exchange2010的命令来处理 可分以下几步处理 1 对操作用户赋予mai
  • Docker的Redis集群部署实战

    参考狂神视频 先把我们的服务器上的容器删除 便于我们下面的测试 root iZwz9hv1phm24s3jicy8x1Z docker rm f docker ps aq 825a4fec0d96 471ad631ae01 65063d37
  • java bufferreader_Java输入流之BufferReader和Scanner的用法!

    原帖地址 http blog csdn net kezhongke article details 7612327 在Java中 我们都知道Java的标准输入串是System in 但是我们却很少在Java中看到谁使用它 这是因为我们平时输
  • [python]csv数据处理 将目录下所有csv文件取出想要的列,去重并存入新csv

    代码 import pandas as pd import os import csv path r home kali Desktop 结果文件10 1 for dirpath dirnames filenames in os walk
  • Python魔术方法-Magic Method

    介绍 在Python中 所有以 双下划线包起来的方法 都统称为 Magic Method 例如类的初始化方法 init Python中所有的魔术方法均在官方文档中有相应描述 但是对于官方的描述比较混乱而且组织比较松散 很难找到有一个例子 构
  • JS版数据结构—树(学习一篇足矣)

    树的深度与广度优先遍历 深度优先遍历 尽可能的搜索树的分支 广度优先遍历 先访问离根节点最近的节点 深度优先遍历 第一步 访问根节点第二部 对根节点的children挨个进行深度优先遍历 const dfs root gt console
  • Android的消息处理机制(图+源码分析)——Looper,Handler,Message

    百度二面的时候 觉得自己源码分析太差 没有深入 面试官估计觉得我很不爽 恩 来吧 自己结合这篇文章 基本上把android消息机制给弄清楚了 http www androidzz com 2011 09 android looper han
  • C++ shared_ptr

    为了解决内存泄漏问题 C 标准库内包含了智能指针 shared ptr是其中的一种 include
  • canal 的 serverMode 模式

    serverMode 为 tcp 需要自定义 canal client 实现消息发送到消息队列 serverMode 为 kafka 或者RocketMQ rabbitmq pulsarmq 不需要 canal client 直接使用消息队
  • java 位运算取8位_【算法】位运算与经典八皇后问题

    文章来源 https mp weixin qq com s 14jQ1yLL4Cw6ufI2E3R yg 作者 码海 前言 位运算在生产或算法解题中并不常见 不过如果你用得好 可以达到事半功倍的效果 而且位运算用得好 也可以极大地提升性能
  • JVM基本结构

    1 JVM 基本架构 2 区域作用 tips Jdk1 6及之前 有永久代 常量池1 6在方法区 Jdk1 7 有永久代 但已经逐步 去永久代 常量池1 7在堆 Jdk1 8及之后 无永久代 常量池1 8在堆 新增元空间 不属于虚拟机 基于
  • Dynamics 365 CRM证书更换

    周末更新公司crm服务器证书时出现一些问题 感谢提供支持的第三方公司 主要步骤参考如下博文https blog csdn net hyhcl article details 109444954 现把存在的问题补充如下 1 如果需要更新crm
  • CTFshow 命令执行 web41

    文章目录 源码 前言 解题 源码
  • 图解 Java 垃圾回收机制,写得非常好! 侵删

    自动垃圾回收是一种在堆内存中找出哪些对象在被使用 还有哪些对象没被使用 并且将后者删掉的机制 所谓使用中的对象 已引用对象 指的是程序中有指针指向的对象 而未使用中的对象 未引用对象 则没有被任何指针给指向 因此占用的内存也可以被回收掉 在
  • 基于STM32F103C8T6ADC检测交流电压

    上篇文章写了硬件部分的实现思路 通过采样电阻的到小电压后经过二级放大电路得到单片机可处理的交流电压 此文介绍了如何采用单片机采集交流电压以及stm32ADC外设的使用 首先是硬件电路部分 电路没有采用核心板 而是直接将芯片焊接到主板上 采用
  • HTML+CSS设计一个简单的水平一级导航栏

    前面我学习了一段时间的HTML和CSS知识 下面我们来运用知识实现一个简单的水平一级导航栏 实现结果 按步骤一步步来 1 首先我们写出它的HTML部分 HTML部分代码 这里是在 div 中使用三个 a 标签 为了方便我没有使用 p 或者
  • Error: That port is already in use.端口号被占用问题解决方法

    标题端口被占用问题 在服务器端先进行查询 然后kill 9 杀死 2473端口 然后在运行Django项目成功
  • MySQL查看数据库相关信息

    https www cnblogs com jiangxiaobo p 6110647 html
  • 百度测开初面面试题分享

    1 java常用的异常处理机制 Java常用的异常处理机制有以下几种 1 try catch finally语句 用于捕获和处理异常 将可能抛出异常的代码放在try块中 然后在catch块中处理异常 无论是否发生异常 finally块中的代
  • Ubuntu/Centos多方法安装mininet

    Ubuntu安装 方法一 apt 安装 sudo apt get install mininet 方法二 源码安装 下载源码 git clone git github com mininet mininet 查看并选择版本 cd minin