您的位置:首页 > 其它

SDN控制器之旅(一)——NOX环境搭建

2015-06-25 11:10 417 查看
看了师兄的博客/article/8588304.html,想试验一下,于是想自己搭建一个NOX出来,做一做博客里面的实验,结果···确实很繁琐

虚拟机环境 ubantu 12.04

先从github上下了一个NOX,参照里面有个install说明安装(因为当时没找到wiki地址),有如下指令:

./boot.sh

mkdir build/

cd build/

../configure

make -j


后来才知道WIKI地址是:https://github.com/noxrepo/nox-classic/wiki (现在说后悔也没用,心虽然很痛)然后按照如上五条挨着做,但是道路曲折

第一次 ./boot.sh

问题:缺少maketools(我是装的ubantu 12.04裸机,估计什么工具都没有,读者可能并没有这个问题,可忽略)

解决:sudo apt-get install autoconf

第二次 ./boot.sh

问题:Can’t exec “libtoolize”: 没有那个文件或目录 at /usr/bin/autoreconf line 196.

Libtool library used but `LIBTOOL’ is undefined

解决:可能没有装aclocal

查看aclocal的路径 aclocal –print-ac-dir

在/usr/share/aclocal中未找到libtool.m4 ,网上给出的都是“将相应的*.m4”文件放进去这类模糊的说法

find .-name libtool.m4

并没找到

sudo apt-get install libtool

再次查找有了 libtool.m4

第三次 ./boot.sh

You should add the contents of
m4/libtool.m4' to
aclocal.m4’

类似的信息,但是没有提示错误,应该是安装好了

接着运行三条:

mkdir build/

cd build/

(这两条是不会有问题的- -)

../configure

问题:configure: error: no support for C++0x

解决:初步判断是没有g++,安装一下试试(真是裸机)

sudo apt-get install g++

成功是成功了,然后又有了新的问题–

问题:configure: error: cannot find the OpenSSL library

checking for openssl/ssl.h in /usr/local/ssl… no

checking for openssl/ssl.h in /usr/lib/ssl… no

checking for openssl/ssl.h in /usr/ssl… no

checking for openssl/ssl.h in /usr/pkg… no

checking for openssl/ssl.h in /usr/local… no

checking for openssl/ssl.h in /usr… no

解决:估计是没有这个.h文件,刚开始想下载最新的openssl来装,但是没找到安装的教程,作为一个Linux菜鸟,我还是选择继续搜索类似的问题,终于找到如下方案:

解决:

sudo apt-get install openssl

sudo apt-get install libssl-dev

更新了当前的openssl,并且加入了可引用的lib环境,也就是说之前没有的ssl.h之类的文件有了。

现在回到上一步,再次configure一下

相似的遭遇–:

问题:

ecking for tbb/tbb.h in /usr… no

checking for tbb/tbb.h in /usr/local… no

checking for tbb/tbb.h in /opt… no

checking for tbb/tbb.h in /opt/local… no

解决:

link1:https://launchpad.net/ubuntu/+source/tbb/4.3~20150316-0ubuntu1

link2:/article/9244240.html

按照上面的教程 执行到make时,先提示

问题:g++ -O2 -DNDEBUG -o square square.cpp gen_input.cpp -ltbb -lrt

square.cpp:25:26: 致命错误: tbb/pipeline.h:没有那个文件或目录

解决:将上层文件夹中的tbb文件夹考到square文件夹中,解决,继续

问题:g++ -O2 -DNDEBUG -o square square.cpp gen_input.cpp -ltbb -lrt

/usr/bin/ld: cannot find -ltbb

解决:sudo apt-get install libtbb-dev

g++ -O2 -DNDEBUG -o square square.cpp gen_input.cpp -ltbb -lrt

./square 0 input.txt output.txt

serial run time = 1.34199

parallel run time = 1.14308

elapsed time : 3.37606 seconds

得到link2中的结果

现在把tbb安装好了,回到上一级继续configure

成功了!下一步

make -j

问题:

../../src/include/vlog.hh:32:33: fatal error: boost/noncopyable.hpp: No such file or directory

../../src/include/network_oarchive.hh:5:36: fatal error: boost/asio/streambuf.hpp: No such file or directory

../../src/include/network_iarchive.hh:5:36: fatal error: boost/asio/streambuf.hpp: No such file or directory

../../src/include/vlog.hh:32:33: fatal error: boost/noncopyable.hpp: No such file or directory

fault.cc:30:28: fatal error: boost/format.hpp: No such file or directory

compilation terminated.

connection.cc:23:30: fatal error: boost/asio/ssl.hpp: No such file or directory

compilation terminated.

解决:

缺少boost库

安装步骤:/article/10958934.html

下载:

http://sourceforge.net/projects/boost/files/boost/1.57.0/boost_1_57_0.tar.gz/download

安装会花费较长时间,安装完成后回到make

第二次make -j

没什么问题,但是由于笔者笔记本跑虚拟机,跑了不知多久,等有结果再来更新,至此笔者已经算配好了环境,如果make -j无响应,接下来的实验将考虑重新装一个集成好环境的来做。

总结:关于SDN控制器,搭环境这一块确实很繁琐,一个NOX,如果像笔者这般对LINUX不熟的话,搭个环境就把自己的好几天给搭进去了,当然跟电脑的性能也有关系,本来配置不好的笔记本再开虚拟机,笔者也是很拼的- -
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: