onos2.0编译安装(npm install和 build问题解决)

onos编译安装(Ubuntu16.04)

1 前置下载安装

1.1 前置包安装

sudo apt-get install git
sudo apt-get install python

#Oracle JDK8
sudo apt-get install software-properties-common -y && \
  sudo add-apt-repository ppa:webupd8team/java -y && \
  sudo apt-get update && \
  echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections && \
  sudo apt-get install oracle-java8-installer oracle-java8-set-default -y
  #Oracle JDK8仓库已经废弃
  
#这里尝试自己去安装jdk,配置环境,但是build的时候有问题
#安装openjdk 8(参考docker)
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get install openjdk-8-jdk -y

1.2 bazel 下载安装(这里好像onos又更新了,bazle可以选择0.23.0–参考docker file里面的版本)

(1)官网下载bazel-0.19.2-installer-linux-86_64.sh并拖入虚拟机桌面

(2)安装

#前置包
sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python

#运行install
chmod +x bazel-0.19.2-installer-linux-x86_64.sh
./bazel-0.19.2-installer-linux-x86_64.sh --user

#修改~/.bashrc
sudo gedit ~/.bashrc
#添加
export PATH="$PATH:$HOME/bin"

. ~/.bashrc

1.3 源码下载及环境设置

(1)源码下载及切换分支

sudo git clone https://gerrit.onosproject.org/onos

#切换分支到onos-2.0
cd onos
sudo git checkout onos-2.0
sudo git branch

(2)环境配置

cd onos
cat << EOF >> ~/.bash_profile
export ONOS_ROOT="`pwd`"
source $ONOS_ROOT/tools/dev/bash_profile
EOF

#上面的执行完可能不对,修改source
sudo gedit ~/.bash_profile
source $ONOS_ROOT/tools/dev/bash_profile

. ~/.bash_profile


#这里最好配到/etc/profile中
export ONOS_ROOT="/opt/onos"
source $ONOS_ROOT/tools/dev/bash_profile


#重启
reboot

1.4 idea下载安装及bazel插件安装

(1)下载安装(自行百度)
(2)插件安装

打开idea,选择下发的Confiure
选择Settings
搜索plugins
在商店搜索bazel插件,安装(这里注意到,最新的bazel插件可能在导入中出现问题,使用v2019.03.05.01版本bazel插件)

2 修改Build及编译安装

2.1 修改build文件(先进入onos目录,尝试bazle build onos如果出现npm安装错误,如果在build的时候没有这个错误不用修改)

2.1.1 可以访问外网(有代理)
# 添加代理
export HTTPS_PROXY=https://proxy_ip:port
export HTTP_PROXY=http://proxy_ip:port

# bazel运行时
bazel build onos --action_env=HTTP_PROXY=$HTTP_PROXY
2.1.2 不可以访问外网(大部分情况),给npm更换淘宝库

(1) 修改onos/web/gui/BUILD

#修改1 _onos-gui-npm-install
#在 cmd的 $$NPM $$NPM_ARGS install 后添加
--registry https://registry.npm.taobao.org

#修改2_onos-gui-npm-build 
#在cmd倒数第4行$$ROOT/$$NPM $$NPM_ARGS run build --no-cache 后添加
--registry https://registry.npm.taobao.org

(2) 修改onos/web/gui2-fw-lib/BUILD

#在onos-gui2-fw-npm-install 的cmd 的npm $$NPM_ARGS install后添加

--registry https://registry.npm.taobao.org

2.2 build

cd onos
bazel build onos

#如果失败,多试几次以后成功

2.3 启动

bazel run onos-local [-- [clean] [debug]]

#(1)利用cli来安装激活应用
#登录cli
onos localhost

#安装特性
feature:install onos-providers-openflow-app 
feature:install onos-apps-fwd 

#激活特性
app activate org.onosproject.openflow  
app activate org.onosproject.fwd 

#(2)利用环境变量来激活安装应用(run之前配置,不需要进入cli)
export ONOS_APPS="drivers,openflow,proxyarp,lldpprovider,fwd"

2.4 UI

http://localhost:8181/onos/ui/index.html
onos/rocks

#主机默认不显示,按键H后显示

2.5 调试

#命令行
bazel run onos-local -- debug

#idea
Run
    Edit Configurations
            +(选择Remote)
                点击OK

2.6 新建app

#在app目录下新建应用
#添加build依赖
#编写代码(src/min/java中的java目录修改其为source目录)
#代码写好后在tools/build/bazle/modules.bzl文件中的ONOS_APPS属性里面添加
"//apps/应用名:onos-apps-应用名-oar"

有用的可以点个赞,有问题可以留言

转载请标明出处

你可能感兴趣的:(SDN)