斯坦福大学TE-Demo配置全过程

一:安装mnox
1.无git10.10(64bit)无更新源之后的配置过程会出现问题,解决方案在后面的步骤中
解决方案:
使用中科大镜像更新源对Ubuntu 10.10进行更新 - Unix之家 - Linux/Unix新闻、技术、开源资讯、IT观点UnixDo.com
http://www.unixdo.com/Unix_Linux/2041.html 【试验可行】

sudo mv /etc/apt/sources.list /etc/apt/sources.list.bck 
备份好原来系统里的源列表 
 
sudo gedit /etc/apt/sources.list 
复制中科大Ubuntu 10.10源列表到你的列表中,然后保存列表。 

deb http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ maverick main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ maverick main universe restricted multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ maverick-security universe main multiverse restricted
deb-src http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ maverick-security universe main multiverse restricted
deb http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ maverick-updates universe main multiverse restricted
deb http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ maverick-proposed universe main multiverse restricted
deb-src http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ maverick-proposed universe main multiverse restricted
deb http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ maverick-backports universe main multiverse restricted
deb-src http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ maverick-backports universe main multiverse restricted
deb-src http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ maverick-updates universe main multiverse restricted


 
sudo apt-get update 更新源列表信息 
在运行“sudo apt-get update ”时查看一下错误信息,把不能连接的源删除再重新运行“sudo apt-get update ”。 
 
sudo apt-get upgrade 升级 
用ubuntu自带的更新管理器升级也可以 

sudo apt-get install git

2.
git clone git://gitosis.stanford.edu/mnox.git
3.这步比较费时
sudo apt-get install automake m4 libtool openssl libssl-dev libboost-dev python-simplejson 
 
   
sudo apt-get install  libboost-filesystem-dev libxerces-c2-dev python-dev libboost-thread1.40.0  
 
   
sudo apt-get install libboost-serialization-dev libsqlite3-dev libreadline-dev python-sphinx 
 
   
sudo apt-get install  libboost-test1.40-dev libboost-all-dev libxml2-dev swig libboost-system-dev
4. 
   
cd mnox/
./boot.sh
./configure --with-python=yes
cd src/
make
make出错
解决方案:
安装MPLS-TE示例 - martin2350的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/martin2350/article/details/8125945
~/mnox/src/lib
sudo gedit async_io.cc 
#include 
后还是出现错误还是在需要的地方添加上
#include 
 
   
以下地方: 
   
cd ~/mnox/src/include/netinet++
 
   
#include 
sudo gedit ethernetaddr.hh
sudo gedit datapathid.hh 
cd ~/mnox/src/include
sudo gedit cnode.hh
string.cc:33: error: ‘vsnprintf’ was not declared in this scope
sudo gedit string.hh
cd ~/mnox/src/lib
ssl-config.cc:126: error: ‘uint32_t’ was not declared in this scope
 
   
#include 
threads/impl.cc:1306: error: ‘rename’ was not declared in this scope
cd ~/mnox/src/lib/threads
 
   
#include 
sudo gedit impl.cc
sudo gedit native.cc 
sudo gedit signals.cc
cd ~/mnox/src/lib
sudo gedit netlink.cc 

pyrt.cc:182: error: ‘PySwigObject’ was not declared in this scope
下载补丁文件pyname_patch.py
到mnox/src文件夹下
执行
 
   
find -name *.cc | xargs python pyname_patch.py
find -name *.hh | xargs python pyname_patch.py
pyrt.cc:182: error: ‘PySwigObject’ was not declared in this scope
find -name pyrt.cc|xargs python pyname_patch.py
find -name pycontext.cc|xargs python pyname_patch.py
find -name pyglue.cc|xargs python pyname_patch.py
find -name oxidereactor.cc|xargs python pyname_patch.py
find -name simple_cc_py_proxy.cc|xargs python pyname_patch.py
find -name pyagg_util.cc|xargs python pyname_patch.py
find -name pyaggutil_wrap.cc|xargs python pyname_patch.py
find -name pyflow_util.cc|xargs python pyname_patch.py
find -name pyflowutil_wrap.cc|xargs python pyname_patch.py
find -name pyname_manager.cc|xargs python pyname_patch.py
find -name pyauth.cc|xargs python pyname_patch.py
find -name apdb_proxy.cc|xargs python pyname_patch.py
find -name pyauth_wrap.cc|xargs python pyname_patch.py
find -name pyrouting.cc|xargs python pyname_patch.py
find -name pynat_enforcer.cc|xargs python pyname_patch.py
find -name user_event_log_proxy.cc|xargs python pyname_patch.py
find -name pystorage.cc|xargs python pyname_patch.py
find -name pytransactional-storage.cc|xargs python pyname_patch.py
find -name pytopology.cc|xargs python pyname_patch.py
find -name pylinkevent_wrap.cc|xargs python pyname_patch.py
find -name pydirmanager.cc|xargs python pyname_patch.py
find -name pydirmanager_wrap.cc|xargs python pyname_patch.py
find -name pynetinfo_mod_event_wrap.cc|xargs python pyname_patch.py
find -name bindings_storage_proxy.cc|xargs python pyname_patch.py
find -name cswitchstats_proxy.cc|xargs python pyname_patch.py
find -name lavi_proxy.cc|xargs python pyname_patch.py
find -name apdb_proxy.cc|xargs python pyname_patch.py
After that:
nox_main.cc:164: error: ‘umask’ was not declared in this scope
cd ~/mnox/src
#include
mnox is OK!只是编译通过
运行出现如下问题:
./nox_core -v -i ptcp mpls
00001|nox|DBG:Starting nox_core (/home/m/mnox/src/.libs/lt-nox_core)
00002|kernel|DBG:Assigned a new UUID for the container: c6912f6c15becdbe
00003|nox|ERR:Cannot change the state of 'python' to INSTALLED:
'python' ran into an error: 
	Unable to construct a Python component:
	Traceback (most recent call last):
	  File "./nox/coreapps/pyrt/pyoxidereactor.py", line 327, in instance
	    return pyoxidereactor(ctxt)
	  File "./nox/coreapps/pyrt/pyoxidereactor.py", line 102, in __init__
	    signal.signal(signal.SIGCHLD, self._handleSigchld)
	AttributeError: 'pyoxidereactor' object has no attribute '_handleSigchld'

修改./nox/coreapps/pyrt/pyoxidereactor.py文件的第102行如下,注意对齐:

#       signal.signal(signal.SIGCHLD, self._handleSigchld)

       signal.signal(signal.SIGCHLD, lambda : self.callLater(0,reapAllProcesses))

ok now!
二:安装mininet
 git clone git://github.com/mininet/mininet
 cd mininet/
git tag
git checkout -b 1.0.0 1.0.0
cd ..
~/mininet/util$ ./install.sh -n
sudo: aptitude: command not found
sudo apt-get install aptitude
./install.sh -n(安装耗时)
sudo mn
Cannot find required executable ovs-dpctl.
Please make sure that Open vSwitch (openvswitch.org) is installed and available in your $PATH:
(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin)

三:安装 movs
cd ~
git clone git://gitosis.stanford.edu/movs.git
cd movs
./boot.sh
./configure
make
sudo make install
change   git://openflowswitch.org/mininet.git  by editing the file ~/mininet/.git/config
~/mininet/.git$ sudo gedit config
url = git://openflowswitch.org/mininet.git
cd ~/mininet
git fetch
git checkout lantz/userovs
sudo make install
四:安装GUI
git clone git://gitosis.stanford.edu/envi-mpls.git
cd envi-mpls/gui/
make
~/envi-mpls/gui$ make
/bin/sh: ant: not found
sudo apt-get install ant(要下载很多东西,安装过程较长,网速给力的情况下可以很快)
再make
:~/envi-mpls/gui$ make
Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-6-openjdk/lib/tools.jar
Buildfile: /home/m/envi-mpls/gui/build.xml
 
   
init:
    [mkdir] Created dir: /home/m/envi-mpls/gui/bin
     [copy] Copying 16 files to /home/m/envi-mpls/gui/bin
    [mkdir] Created dir: /home/m/envi-mpls/gui/bin/images
     [copy] Copying 14 files to /home/m/envi-mpls/gui/bin/images
    [unzip] Expanding: /home/m/envi-mpls/gui/lib/jcommon-1.0.15.jar into /home/m/envi-mpls/gui/bin
    [unzip] Expanding: /home/m/envi-mpls/gui/lib/jfreechart-1.0.12.jar into /home/m/envi-mpls/gui/bin
    [unzip] Expanding: /home/m/envi-mpls/gui/lib/jung2-layout-min.jar into /home/m/envi-mpls/gui/bin
    [unzip] Expanding: /home/m/envi-mpls/gui/lib/jyaml-1.3.dgu.jar into /home/m/envi-mpls/gui/bin
   [delete] Deleting directory /home/m/envi-mpls/gui/bin/META-INF
 
   
build:
    [javac] /home/m/envi-mpls/gui/build.xml:40: warning: 'includeantruntime' was 
not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 124 source files to /home/m/envi-mpls/gui/bin
 
   
BUILD FAILED
/home/m/envi-mpls/gui/build.xml:40: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/java-6-openjdk/jre"
 
   
Total time: 0 seconds
make: *** [jar] Error 1

 
   
BUILD FAILED
/home/m/envi-mpls/gui/build.xml:40: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/java-6-openjdk/jre"
 
   
Total time: 0 seconds
make: *** [jar] Error 1
sudo apt-get install openjdk-6-jdk
export JAVA_HOME="/usr/lib/jvm/java-6-openjdk"
bash: /usr/lib/jvm/java-6-openjdk: is a directory(已醉)没加”“
修改过环境变量后/etc/profile文件后还是
java -jar bin/openflow_gui.jar 127.0.0.1
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fa12da58de0, pid=2284, tid=140330234332944
#
# JRE version: 6.0_20-b20
# Java VM: OpenJDK 64-Bit Server VM (19.0-b09 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea6 1.9.13
# Distribution: Ubuntu 10.10, package 6b20-1.9.13-0ubuntu1~10.10.1
# Problematic frame:
# C  [ld-linux-x86-64.so.2+0x15de0]
#
# An error report file with more information is saved as:
# /home/mpls/envi-mpls/gui/hs_err_pid2284.log
#
# If you would like to submit a bug report, please include
# instructions how to reproduce the bug and visit:
#   https://bugs.launchpad.net/ubuntu/+source/openjdk-6/
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Aborted
~/envi-mpls/gui$ java -d32 -jar bin/openflow_gui.jar 127.0.0.1
This Java instance does not support a 32-bit JVM.
Please install the desired version.
切换成sun JDK之后是这样:
 
   
sudo update-alternatives --config java

 java -d32 -jar bin/openflow_gui.jar 127.0.0.1
Running a 32-bit JVM is not supported on this platform64bit和32bit的问题
 
   
错误依旧存在
安装java version "1.8.0_45"32bit
此错误解决

你可能感兴趣的:(科研)