Mininet安装及使用
一、Mininet安装
1.Linux(Ubuntu)软件包更新
sudo apt-get update
sudo apt-get upgrade
- sudo apt-get update命令的作用是更新系统软件包列表。当执行这个命令时,系统会连接到Ubuntu的软件仓库服务器,检查所有软件包的最新版本信息并下载这些信息到本地。这是确保能获取到软件最新版本和安全更新的前提。因为软件仓库的内容会定期更新,所以即使在安装Ubuntu时软件包是最新版本,过一段时间也可能有更新可用。
- 一旦你的软件包列表通过sudo apt-get update命令更新了,接下来使用sudo apt-get upgrade命令会将系统中已安装的软件包升级到它们的最新版本(基于刚才更新的软件包列表)。这个过程不会安装新的软件包,只会更新现有的软件包到最新版本,以获得新功能和安全修复。
2.Mininet克隆下载
git clone git://github.com/mininet/mininet.git
or
git clone https://github.com/mininet/mininet.git
or
git clone https://gitclone.com/github.com/mininet/mininet.git
git://github.com/mininet/mininet.git有时会拒绝连接
3. Mininet安装
- Ubuntu16.04 root_python版本 python2.7 / python3.5
- Ubuntu20.04 root_python版本 python2.7 / python3.8
cd mininet/util
# Mininet安装两种选择
# python2版本
PYTHON=python2 ./install.sh -n3v
# or python3版本
PYTHON=python3 ./install.sh -n3v
注意:当使用python3版本时,因涉及后续mininet文件修改及编译最好将install.sh中 PYTHON变量修改
# Attempt to detect Python version
PYTHON=${PYTHON:-python}
PRINTVERSION='import sys; print(sys.version_info)'
PYTHON_VERSION=unknown
# for python in $PYTHON python2 python3; do # 需要修改处、需要修改处、需要修改处、需要修改处、需要修改处、需要修改处#
for python in $PYTHON python3; do # ****************************************************************#
if $python -c "$PRINTVERSION" |& grep 'major=2'; then
PYTHON=$python; PYTHON_VERSION=2; PYPKG=python
break
elif $python -c "$PRINTVERSION" |& grep 'major=3'; then
PYTHON=$python; PYTHON_VERSION=3; PYPKG=python3
break
fi
done
4. Mininet测试
sudo mn
二、Ryu安装
1. Ryu克隆下载
git clone git://github.com/osrg/ryu.git
or
git clone https://github.com/osrg/ryu.git
or
git clone https://gitclone.com/github.com/osrg/ryu.git
git://github.com/github.com/osrg/ryu.git有时会拒绝连接
2. Ryu安装
注意:首先需要确定使用的python版本及位置,便于后续编写自定义的ryu app时,安装及导入额外的python包
- Ubuntu16.04 root_python版本 python2.7 / python3.5
- Ubuntu20.04 root_python版本 python2.7 / python3.8
- (推荐)anaconda自定义环境下python版本 不要在python2版本或python3.9以上版本安装ryu,版本兼容性
# 注:$后为bash命令
your_username@ubuntu:~$cd ryu
# (选择一)此方式为安装在root_python版本下,确保python命令指向python3版本
your_username@ubuntu:~/ryu$python ./setup.py install
# (选择二)(推荐)此方式为安装在anaconda_env_python版本下,python命令即指向创建conda环境时的python版本(位置)
(your_conda_env)your_username@ubuntu:~/ryu$python ./setup.py install
遇到问题:使用conda_python3.8环境安装ryu时遇到问题(setuptools版本过高)
AttributeError: module ‘setuptools._distutils’ has no attribute ‘....’
解决方案:卸载重安装setuptools(python3.8)
(your_conda_env)your_username@ubuntu:~/ryu$pip uninstall setuptools
(your_conda_env)your_username@ubuntu:~/ryu$pip install setuptools==59.5.0
3. Ryu测试
cd ryu/ryu/app
ryu-manager simple_switch.py