学习opendaylight(环境搭建)

(一)安装Java

 执行 java –version 查看使用的 java 版本
这个版本的 ubuntu 装的应该是 jdk 1.8

安装debian钥匙环

apt install debian-archive-keyring

添加必要的仓库

add-apt-repository 'deb http://mirrors.163.com/debian experimental main'

add-apt-repository 'deb http://mirrors.163.com/debian sid main'

创建文件/etc/apt/preferences.d/debian,并添加如下内容

vim /etc/apt/preferences.d/debian
####################################################
Package: *
Pin: release o=Debian,n=experimental
Pin-Priority: -1

Package: *
Pin: release o=Debian,n=sid
Pin-Priority: -1

Package: openjdk-7-jdk
Pin: release o=Debian,n=experimental
Pin-Priority: 500

Package: openjdk-7-jre
Pin: release o=Debian,n=experimental
Pin-Priority: 500

Package: openjdk-7-jre-headless
Pin: release o=Debian,n=experimental
Pin-Priority: 500

Package: libjpeg62-turbo
Pin: release o=Debian,n=sid
Pin-Priority: 500
#################################################

 

前提准备--Ubuntu16.04的安装源已经默认没有openjdk7了,所以要自己手动添加仓库,如下:

# 1. oracle openjdk ppa source  //必安
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-7-jdk  // OpenJdk 7安装

# 2. oracle java jdk ppa source 
 add-apt-repository ppa:webupd8team/java
 apt-get update

apt-get install libfontconfig1=2.12.6-0.1   //openjdk-7-jdk依赖

apt-get install fontconfig-config=2.12.6-0.1 //openjdk-7-jdk依赖

apt install openjdk-7-jdk

 

  • 执行apt-get remove openjdk-6-jre-lib openjdk-6-jre-headless删除jdk 1.6相关的

东西
注意:执行这个命令的时候,需要观察下 remove 过程,会发现它会自动安
装 java jre 1.7 的东西,但是不要认为就不需要装 jdk 1.7 了,因为 ubuntu 默
认安装的东西是不全的,至少我安装的过程中遇到了问题。确认是否 java jdk
是否安装全面的方法是,查看 jdk 的安装目录是否完全
flight@flight-virtual-machine:~$ ls /usr/lib/jvm/java-7-openjdk-i386/lib/
ct.sym dt.jar ir.idl  jconsole.jar  jexec orb.idl       sa-jdi.jar    tools.jar
以上这个“tools.jar”是必不可少的,因为 maven 编译的时候对它有依赖。如果
发现 java-7-openjdk-i386 下没有 lib 文件夹,那么继续执行下一步

  • 执行 sudo apt-get -y install openjdk-7-jdk

注意:依然要看一下安装过程,如果发现似乎什么都装不上,那么请执行
apt-get remove openjdk-7-jre-lib openjdk-7-jre-headless删除ubuntu给你默认安
装的东西,再执行 sudo apt-get -y install openjdk-7-jdk,之后再按上步所述查
看 jdk 是否安装完全,一般没有问题了。

  • 修改 java 环境变量

vim /etc/profile 在其末尾添加如下,并保存:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
完成以下修改后,需重启虚拟机或使用命令 source /etc/profile 使配臵生效

 

(二)安装Maven

1.最简单的方法:apt-get install maven

2.配置mavne环境

gedit /etc/profile
在文件内容后面添加以下内容:

export M2_HOME=/usr/share/maven
export CLASSPATH=$CLASSPATH:$M2_HOME/lib
export PATH=$PATH:$M2_HOME/bin

3.保存,输入以下命令使配置文件生效。
source /etc/profile
4.
验证
mvn -v

5.
针对Opendaylight,安装好Maven后,需要编辑一个非常重要的文件 settings.xml。
直接修改该文件,就能在机器上全局地定制 Maven的行为。~/.m2是默认的maven本地仓库。
刚装好maven的后~/.m2下是没有settings.xml的文件的。在/etc/maven下有settings.xml的
原型,一般情况下,我们更偏向于复制该文件至home目录下的.m2/目录下(这里~表示用户
目录),然后修改该文件,在用户范围定制 Maven的行为。前者又被叫做全局配置,后者被称为
用户配置。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。
在这里要在~/目录下创建.m2文件夹,然后执行修改命令



6.
在/home目录下生成maven/repository文件夹

cd /usr/share/maven/conf
vi settings.xml

(1.
<!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  <localRepository>/maven/repository</localRepository>
  <!-- interactiveMode
   | This will determine whether maven prompts you when it needs input. If set to false,
   | maven will use a sensible default value, perhaps based on some other setting, for
   | the parameter in question.
   |
   | Default: true
  <interactiveMode>true</interactiveMode>
  -->

(2.
<mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>central</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
     -->
  </mirrors>


(三) 获取代码
下载 controller:git clone https://git.opendaylight.org/gerrit/p/controller.git
下载 openflowplugin:git clonehttps://git.opendaylight.org/gerrit/p/openflowplugin.git
下载 openflowjava:git clone https://git.opendaylight.org/gerrit/p/openflowjava.git

下载完毕后,会在当前目录下会生成 controller、openflowplugin 和 openflowjava
三个目录。
因为 openflowplugin 依赖 openflowjava,在编译 openflowplugin 时会同时编译
openflowjava 的相关 bundle,因此 openflowjava 是不需要单独编译的,下载下它
的目的是为了后续分析它的代码结构。


发现controller/opendaylight/目录下并没有distribution文件夹,也就是需要在controller/目录下执行一遍mvn clean install。按一下步骤来:
cd controller/
git checkout stable/hydrogen
mvn clean install

 

 

可以看到是BUILD FAILURE,很多找不到依赖的问题,先不管,打开controller/opendaylight/目录,发现有distribution了,以为可以继续最上面的过程,要成功了,但又出现一些问题,执行下面命令,得到结果。

 

$cd controller/opendaylight/distribution/opendaylight/

$mvn clean install

第一次不成功,重启再来成功了。有毒啊。

发现有target了,美滋滋,接下来:

$cd /home/sdn/opendaylight/controller/opendaylight/distribution/opendaylight/target/distribution.opendaylight-osgipackage/opendaylight

$./run.sh

在浏览器中打开localhost:8080

 

 

 

 

 

posted @ 2018-04-07 22:05  An2i  阅读(50)  评论(0编辑  收藏  举报