当前位置: 首页 > 工具软件 > ONOS > 使用案例 >

Ubuntu 16.04 安装onos 2.2.0

闾丘康安
2023-12-01

之前使用了别人分享的安装好的p4虚拟机,应该是这个人的,不过我记得的是用的谷永普的,当时还是从微云上下载的,但是找不到了。不过无所谓,本文不讲p4的安装,有需要的,就看上面链接也行,反正环境是类似的。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:        16.04
Codename:       xenial

安装的时候主要参考的是ONOS 2.2安装官网Ubuntu 16.04安装onos

下载安装

  1. 首先安装文件,看着装吧,不过不建议动Python的版本,否则出了问题就难办。也就是不要删除Ubuntu自己的Python。sudo apt install -y xxx即可。

    git
    zip
    curl
    unzip
    python # 2.7 required by some development scripts
    python3 # Required by Bazel
    bzip2 # Needed by legacy GUI build
    
  2. 然后下载bazel,一个build工具。https://github.com/bazelbuild/bazel/releases,看他们都是用0.27.2,我们也使用这个吧。高版本没有测试。

    $ wget https://github.com/bazelbuild/bazel/releases/download/0.27.2/bazel_0.27.2-linux-x86_64.deb
    $ sudo apt install ./bazel_0.27.2-linux-x86_64.deb
    
  3. 官网建议使用Amazon Corretto这个OpenJDK的一种实现,Oracle Java 8已经废止了。安装参考Amazon Corretto 11或者Downloads for Amazon Corretto 11,我是用的后者,下载的amazon-corretto-11-x64-linux-jdk.tar.gz。然后

    $ tar -zxvf amazon-corretto-11-x64-linux-jdk.tar.gz
    $ mv amazon-corretto-11-x64-linux-jdk /usr/local/ # 应该需要使用sudo权限
    # 然后去把java目录放入PATH中,写到~/.bashrc即可,下面应该可行,不过建议手抄''中的内容到文件
    $ echo 'export PATH=/usr/local/amazon-corretto-11-x64-linux-jdk/bin:${PATH}' >> ~/.bashrc
    $ source ~/.bashrc
    $ java -version
    openjdk version "11.0.16.1" 2022-08-12 LTS
    OpenJDK Runtime Environment Corretto-11.0.16.9.1 (build 11.0.16.1+9-LTS)
    OpenJDK 64-Bit Server VM Corretto-11.0.16.9.1 (build 11.0.16.1+9-LTS, mixed mode)
    
  4. 下载onos的代码git clone https://gerrit.onosproject.org/onos,看网络吧,听天由命。不知道能不能导入到gitee,那样会快一点。

  5. 编译

    $ cd onos
    $ bazel build onos
    
  6. 运行

    $ bazel run onos-local -- clean debug
    # 'clean' to delete all previous running status
    # 'debug' to enable remote debugging
    
  7. 连接cli,用户名和密码应该是onos/rocks,要不要输入不记得了,反正要输入默认就是这个。

    $ tools/test/bin/onos localhost
    onos> app activate org.onosproject.openflow
    onos> app activate org.onosproject.fwd
    
  8. 查看界面

    $ tools/test/bin/onos-gui localhost # 不生效,
    

    还是手动打开吧 http://localhost:8181/onos/ui ,用户名/密码:onos/rocks

  9. 连接mininet

    # 这里的ip地址就是运行ONOS的,要是同一个虚拟机就是127.0.0.1,否则就是能够ping通的运行onos的主机。
    $ sudo mn --controller remote,ip=<ONOS IP address> --topo torus,3,3
    
  10. 执行单元测试

    $ bazel query 'tests(//...)' | xargs bazel test       # or use 'ot' alias
    

    这里的alias没有看,它在$ONOS_ROOT/tools/dev/bash_profile中,就是写入到~/.bashrc中就可以了,当然取决于你所使用的SHELL。如果不用bash,用其他的SHELL,如zsh,那么就应该写到~/.zshrc中。至于官网说的~/.bash_profile都是一样的。

    export ONOS_ROOT=~/onos
    source $ONOS_ROOT/tools/dev/bash_profile
    

主要问题

以下文件因为虚拟机不给我复制,所以就自己看报错吧。红色的ERROR前后,很明显能够找到文件,不是xxx.bzl,就是BUILD或者WORKSPACE

  1. GET returned 501 HTTPS Required,直接使用sed -i "s/http:\/\/repo1/https:\/\/repo1/g xxx.bzl进行替换,但是后面还会有错的,这个具体的文件自己寻找,应该是在~/.cache/bazel之下,具体的看报错情况。要是拿不准sed命令,就打开文件直接一个个修改也是一样的。
  2. 类似1,还是https出问题,不过是sed -i "s/http:\/\/central/https:\/\/repo1/g xxx.bzl,和1一样,都是maven仓库的问题,这个文件也是需要自己找。这个是因为central.maven.org这个网址可能改版了吧。
  3. git的证书验证,同样的其实也是因为https的问题,问题大概长相是:CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none,不过这里直接export GIT_SSL_NO_VERIFY=1。其他的解决方式解答:Server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
  4. 还有一个是zlib报错,https://zlib.net/zlib-1.2.11.tar.gz,主要是这个网址变了,直接搜索zlib-1.2.11.tar.gz,然后发现变为了https://zlib.net/zlib-1.2.11.tar.gz这个网址,那么就去修改xxx.bzl文件,替换url就行了,这个真的是网站改版了。
  5. Unrecognized option: --java_language_version=11,如果一开始编译就发现了这个错误,那么应该是版本的问题,教程给的都是直接编译,但是又不给说版本配套,我是安装的2.2.0,那么就先切换git checkout 2.2.0,然后安装的Java版本是AWS Corretto 11,再编译就不会报错了。不过不明白到底是什么版本的问题,到底是Java版本,还是bazel的版本,不清楚。
  6. 最严重的问题是,这玩意真的很占地方,我最后没办法,给了50G空间,实际当然用不到这么多,但是20G是不够用的。至于如何修改以及挂载,只能说是使用VituralBox很麻烦,VMware会稍微简单一点。参考这里吧。最后使用gparted把所有的其他的都删除了,分给了挂载点在/目录的第一个分区。但是这样就没有swapfile了,参考这里再搞swapfile吧。
  7. 还有一个问题是提示我找不到SLF4J中的类,不知道,没解决。但感觉应该影响不大吧,毕竟就只是日志。
 类似资料: