ONOS新升级BUCK安装方法,你更喜欢BUCK还是Maven?

作者简介:周正强,北京邮电大学未来网络实验室在读研究生,目前还在网络初级阶段捣鼓,希望能够与大家一起交流学习。

引言

ONOS诞生也有好几年了,更新了无数个版本,onos1.3版本及以下的安装教程sdnlab上挺多的,但是在onos采用buck以后的内容相关资料很少,以下是根据官网和google论坛查阅得来,还望大家指点。

何为BUCK

首先让我们了解一下BUCK是什么:

  1. BUCK是一个由facebook开发使用的编译系统
  2. 它是为了鼓励更细粒度的可复用的代码和资源的模块构建
  3. 在多平台上支持多种语言

BUCK优点

  • 加速build
  • 为build增加了重现性
  • 可以获取到正确的增量版本
  • 了解相关依赖
  • 与IDE集成

BUCK中常用的命令

  • 构建命令:
  • 执行命令(执行一个可执行的target):
  • 生成project(可导入idea):

    ONOS

    onos使用buck安装方法

    从onos1.7开始改版使用BUCK机制,比起之前的Maven安装更加高效也更加方便。具体的安装方法如下(在官网中也有说明):

  1. 首先准备工具环境:

  2. 下载安装jdk:

  3. 下载编译ONOS(onos1.7或者onos1.8虽然也可以使用buck编译,但是之后开发时会有问题,之后再说明),使用show-ouput参数会在编译构建之后打印出生成的onos.tar.gz的生成路径:

  4. 添加环境变量(每次开启终端都需要添加),把该变量写入~/.profile或者/etc/profile中:

  5. 执行代码测试命令如下(可以检查checkstyle,以防报错):

  6. 生成project,使得可导入idea:

  7. 开启ONOS(需要有环境变量):

    或者:

    这样就会在后台开启ONOS了如下图中所示:
    image

  8. 进入到经典的KARAF终端界面(另开一个终端执行如下命令):

    或者:

    将会显示经典的界面,如下图中所示:
    image

  9. 此时就可以像之前的ONOS那样,执行命令查看app或者激活app了:

  10. 上述内容都是官网有的,因此结合上面的内容写了一个onos安装脚本(安装了几次都没什么问题,采用的ubuntu16.04),脚本链接如下:

    我把几个模块封装成了几个函数封装,因为一开始防止安装过程中出错,具体模块如下:

  • install_backup是安装一些基本软件,不过需要注意先把apt源设置成,使用apt-get update是否能正常执行,这一步很容易有问题,关于ubuntu的源列表可从下述网址中查找:

  • install_mk是一开始采用老版方式maven安装使用的,之后保留了,但是由于之后开发如果采用之前的mvn构建也需要使用mvn,所以可以直接用这个函数安装即可
  • install_java是安装jdk
  • download_onos是为了下载onos
  • configure_setting是为了配置环境变量
  • set_env是onos1.7以下在feature中追加onos用的,buck构建中不需要
  • install_onos就是编译构建onos

onos开发使用:

  1. 将artificates导入~/.m2文件夹中,采用onos中的脚本,执行以下命令即可(需要source环境变量)

  2. 然后采用maven构建:

  3. 之后就可以使用onos脚本创建新的项目了:

    显示如下:
    image

  4. 然后将该项目文件夹下pom.xml中的<!—comment这个注释去掉,使得编译可生成oar文件:
    显示如下:
    image
  5. 再执行mvn编译成功即可:

  6. 然后采用onos-app脚本将编译生成的oar文件安装到onos中:

FAQ

在这个过程中有几个地方可能会报错,有的错误还没找到解决办法,一起学习吧,问题如下:

  1. 没有know_hosts文件,显示如下图:
    image

解决办法:

使用终端ssh到别的终端,或者ssh自己的ip就会自动生成know_hosts文件,如果不是第一次ssh应该就不会报错

2、onos1.7或者1.8将artificates push到.m2中时报错sed ** no such file(当时没截图): \
这个问题找了好久都没找到解决方案,网上也没用相关的内容都把google翻遍了,后来去查看源码的安装脚本,发现onos-1.7和onos-1.8中的该脚本和onos1.9及以上的内容完成不一样,瞬间明白了,可能是当时处于版本交替所以这两个版本做的不完善,所以解决办法就是buck安装最好不要使用这两个版本的onos。

参考链接

https://wiki.onosproject.org/display/ONOS/Template+Application+Tutorial

https://wiki.onosproject.org/display/ONOS/Developer+Quick+Start

https://www.youtube.com/watch?v=wEMVmbsNyS4

https://buckbuild.com/


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/19888.html
分享到:
相关文章
条评论

登录后才可以评论

zhouwaiqiang 发表于17-09-22
1