root@focal:~# pip3 install ipmininet Collecting ipmininet Downloading ipmininet-0.9.tar.gz (110 kB) |████████████████████████████████| 110 kB 2.8 MB/s ERROR: Packages installed from PyPI cannot depend on packages which are not also hosted on PyPI. ipmininet depends on mininet@ git+https://github.com/mininet/mininet@2.3.0d6 root@focal:~#
git clone git://github.com/mininet/mininet.git cd mininet git tag git checkout 2.3.0d6 ./util/install.sh -a
ubuntu@ubuntu:/data1$ cd mininet/ ubuntu@ubuntu:/data1/mininet$ git tag 1.0.0 2.0.0 2.1.0 2.1.0p1 2.1.0p2 2.2.0 2.2.1 2.2.2 2.3.0d3 2.3.0d4 2.3.0d5 2.3.0d6 cs244-spring-2012-final ubuntu@ubuntu:/data1/mininet$ git checkout 2.3.0d6 fatal: Unable to create '/data1/mininet/.git/index.lock': Permission denied ubuntu@ubuntu:/data1/mininet$ sudo su [sudo] password for ubuntu: root@ubuntu:/data1/mininet# git checkout 2.3.0d6 error: Your local changes to the following files would be overwritten by checkout: util/install.sh Please commit your changes or stash them before you switch branches. Aborting root@ubuntu:/data1/mininet#
cgroup-bin改成cgroup-tools
fatal: destination path 'openflow' already exists and is not an empty directory.
File "/tmp/pip-build-aS5WwX/ipmininet/ipmininet/install/install.py", line 52 def install_mininet(output_dir: str, pip_install=True): ^ SyntaxError: invalid syntax ---------------------------------------- Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-aS5WwX/ipmininet/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-gDkSpP-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-aS5WwX/ipmininet/ root@ubuntu:/data1/ipmininet#
File "ipmininet/install/install.py", line 170 print("WARNING: Ignoring failed OpenR installation.", file=sys.stderr) ^ SyntaxError: invalid syntax
In Python 3: To print to STDOUT print("your message") To print to STDERR print("your message", file=sys.stderr) To use Python 3 style print in Python 2: In Python 2: To print to STDOUT from __future__ import print_function print("your message") To print to STDERR from __future__ import print_function print("your message", file=sys.stderr)
root@ubuntu:/data1/ipmininet# python3 setup.py install Traceback (most recent call last): File "setup.py", line 10, in <module> from setuptools import setup, find_packages ModuleNotFoundError: No module named 'setuptools'
root@ubuntu:/data1# python3 get-pip.py Traceback (most recent call last): File "get-pip.py", line 23682, in <module> main() File "get-pip.py", line 198, in main bootstrap(tmpdir=tmpdir) File "get-pip.py", line 82, in bootstrap from pip._internal.cli.main import main as pip_entry_point File "/tmp/tmphwvxzvp4/pip.zip/pip/_internal/cli/main.py", line 10, in <module> File "/tmp/tmphwvxzvp4/pip.zip/pip/_internal/cli/autocompletion.py", line 9, in <module> File "/tmp/tmphwvxzvp4/pip.zip/pip/_internal/cli/main_parser.py", line 7, in <module> File "/tmp/tmphwvxzvp4/pip.zip/pip/_internal/cli/cmdoptions.py", line 18, in <module> ModuleNotFoundError: No module named 'distutils.util' root@ubuntu:/data1# apt-get install python3-distutils
root@focal:~# pip3 -V pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8) root@focal:~# pip3 install --upgrade git+https://github.com/cnp3/ipmininet.git@v0.9 Collecting git+https://github.com/cnp3/ipmininet.git@v0.9 Cloning https://github.com/cnp3/ipmininet.git (to revision v0.9) to /tmp/pip-req-build-yhxl42op Running command git clone -q https://github.com/cnp3/ipmininet.git /tmp/pip-req-build-yhxl42op Collecting ipaddress>=1.0.22
Installation IPMininet needs at minimum: Python (with pip) 3.5+ Mininet
將默認python設為python3
root@ubuntu:/data1/mininet# python -V Python 2.7.17 root@ubuntu:/data1/mininet# ls /usr/bin/py py3clean pydoc3 pyhtmlizer3 python3 py3compile pydoc3.6 pylint python3.6 py3versions pyflakes pyreverse python3.6m pyclean pyflakes3 python python3m pycodestyle pygettext python2 python-config pycompile pygettext2.7 python2.7 pyversions pydoc pygettext3 python2.7-config pydoc2.7 pygettext3.6 python2-config root@ubuntu:/data1/mininet# rm /usr/bin/python root@ubuntu:/data1/mininet# ln -s /usr/bin/python3 /usr/bin/python ------------非常關鍵,否則mininet用python2 root@ubuntu:/data1/mininet#
用python3安裝mininet
root@ipmn:~/mininet# ./util/install.sh -nf
pip3 install mako ipaddress
openvswitch 改為手動安裝
ipmininet/install/install.py
def install_mininet(output_dir, pip_install=True): dist.install("git") if dist.NAME == "Fedora": mininet_opts = "-fnp" dist.install("openvswitch", "openvswitch-devel", "openvswitch-test") sh("systemctl enable openvswitch") sh("systemctl start openvswitch") else: mininet_opts = "-a" ////////////// 或者"-nf" sh("git clone https://github.com/mininet/mininet.git", cwd=output_dir) sh("git checkout %s" % MininetVersion, cwd=os.path.join(output_dir, "mininet"))
//用https
sh("sed -i \'s#git clone git:#git clone https:#g\' mininet/util/install.sh",cwd=output_dir) #sh("sed -i \'s#git clone git://github.com/mininet/openflow#git clone https://github.com/mininet/openflow.git#g\' mininet/util/install.sh",cwd=output_dir) sh("mininet/util/install.sh %s -s ." % mininet_opts, cwd=output_dir) if pip_install: dist.pip_install("mininet/", cwd=output_dir)
mnexec.c:17:10: fatal error: stdio.h: No such file or directory
#include <stdio.h>
^~~~~~~~~
compilation terminated.
Makefile:49: recipe for target 'mnexec' failed
make: *** [mnexec] Error 1
root@ipmn:~/ipmininet# apt-get install build-essential
不能python3 setup.py install,
應該
python -m ipmininet.install -af
root@ipmn:~/ipmininet# python -V
Python 3.6.9
root@ipmn:~/ipmininet# pip -V
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
root@ipmn:~/ipmininet# ls /opt/ mininet_dependencies root@ipmn:~/ipmininet# ls /opt/mininet_dependencies/ mininet oflops oftest openflow pox root@ipmn:~/ipmininet#