RYU控制安装过程

来源:互联网 发布:淘宝邮票哪家好 编辑:程序博客网 时间:2024/04/20 12:10

1、使用VirtualBOx创建虚机,使用系统镜像为ubuntu-14.04.5-server-amd64.iso

2、使用脚本安装

$ wget https://raw.githubusercontent.com/sdnds-tw/ryuInstallHelper/master/ryuInstallHelper.sh$ bash ryuInstallHelper.sh
3、安装完后会生成目录ryu,其目录结构如下:

zqg@bogon:~$ ll ryu
total 108
drwxrwxr-x 11 zqg  zqg   4096 Nov 26 22:16 ./
drwxr-xr-x  4 zqg  zqg   4096 Nov 27 01:43 ../
-rw-r--r--  1 root root    31 Nov 26 22:16 AUTHORS
drwxrwxr-x  2 zqg  zqg   4096 Nov 26 22:13 bin/
drwxr-xr-x  3 root root  4096 Nov 26 22:16 build/
-rw-r--r--  1 root root    33 Nov 26 22:16 ChangeLog
-rw-rw-r--  1 zqg  zqg   3745 Nov 26 22:13 CONTRIBUTING.rst
drwxrwxr-x  3 zqg  zqg   4096 Nov 26 22:13 debian/
drwxrwxr-x  3 zqg  zqg   4096 Nov 26 22:13 doc/
drwxrwxr-x  3 zqg  zqg   4096 Nov 26 22:13 etc/
drwxrwxr-x  8 zqg  zqg   4096 Nov 26 22:13 .git/
-rw-rw-r--  1 zqg  zqg    128 Nov 26 22:13 .gitignore
-rw-rw-r--  1 zqg  zqg  11358 Nov 26 22:13 LICENSE
-rw-rw-r--  1 zqg  zqg    310 Nov 26 22:13 MANIFEST.in
-rw-rw-r--  1 zqg  zqg    597 Nov 26 22:13 .pylintrc
-rw-rw-r--  1 zqg  zqg   1992 Nov 26 22:13 README.rst
-rwxrwxr-x  1 zqg  zqg   5040 Nov 26 22:13 run_tests.sh*
drwxrwxr-x 12 zqg  zqg   4096 Nov 26 22:16 ryu/
drwxr-xr-x  2 root root  4096 Nov 26 22:16 ryu.egg-info/
-rw-rw-r--  1 zqg  zqg   1315 Nov 26 22:13 setup.cfg
-rw-rw-r--  1 zqg  zqg    956 Nov 26 22:13 setup.py
drwxrwxr-x  3 zqg  zqg   4096 Nov 26 22:13 tools/
-rw-rw-r--  1 zqg  zqg    991 Nov 26 22:13 tox.ini
-rw-rw-r--  1 zqg  zqg    447 Nov 26 22:13 .travis.yml

4、执行脚本报错,six库不匹配

zqg@bogon:~/ryu/ryu/app$ ryu-manager simple_switch.py 
Traceback (most recent call last):
  File "/usr/local/bin/ryu-manager", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2749, in <module>
    working_set = WorkingSet._build_master()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 446, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 459, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 632, in resolve
    raise VersionConflict(dist,req) # XXX put more info here
pkg_resources.VersionConflict: (six 1.5.2 (/usr/lib/python2.7/dist-packages), Requirement.parse('six>=1.10.0'))

5、下载匹配的six包,重新安装


zqg@bogon:~/ryu/ryu/app$ tar -zxvf six-1.10.0.tar.gz 

zqg@bogon:~/ryu/ryu/app$ cd six-1.10.0/

zqg@bogon:~/ryu/ryu/app/six-1.10.0$ sudo python setup.py install

6、执行脚本未报错

zqg@bogon:~/ryu/ryu/app$ ryu-manager --verbose simple_switch.py
loading app simple_switch.py
loading app ryu.controller.ofp_handler
instantiating app simple_switch.py of SimpleSwitch
instantiating app ryu.controller.ofp_handler of OFPHandler
BRICK SimpleSwitch
  CONSUMES EventOFPPortStatus
  CONSUMES EventOFPPacketIn
BRICK ofp_event
  PROVIDES EventOFPPortStatus TO {'SimpleSwitch': set(['main'])}
  PROVIDES EventOFPPacketIn TO {'SimpleSwitch': set(['main'])}
  CONSUMES EventOFPPortDescStatsReply
  CONSUMES EventOFPErrorMsg
  CONSUMES EventOFPHello
  CONSUMES EventOFPPortStatus
  CONSUMES EventOFPEchoRequest
  CONSUMES EventOFPEchoReply
  CONSUMES EventOFPSwitchFeatures