一、先决条件(仔细核对,缺一不可!)
Linux:你最喜欢的 Linux 风格
(我的虚拟机环境:Linux x64、5.13.0内核、Ubuntu 20.04)
Java 开发工具包:JDK 8 for Floodlight master 及更高版本、JDK 7 for Floodlight v1.2 及更低版本
一号坑:严格按照官方要求的版本下载,不要用官网给的命令一步下载到位!
目前这两个jdk都是需要注册Oracle官方账号才能下载的,因此直接执行官网的命令,会有两种情况:1.默认下载了openjdk-11;2.无法下载openjdk-7-jdk,并推荐你用default-jdk命令下载,该命令下载的仍然是jdk11。不要偷懒,他说要jdk8就一定得是jdk8!
排坑:
JDK 8下载链接,免费下载的,注册就行
根据自己的Linux环境选择,一般都是这个:
具体的步骤参考Unbuntu下Java环境搭建,这里不再赘述,注意先不要急着照他的方法安装Eclipse。openjdk-8也最好装一下,貌似可以直接命令安装:
sudo apt-get install openjdk-8-jdk
小坑: 如果在执行java -version命令时发现不小心被安装了openjdk-11,用这个命令来卸载是最干净最简洁的:
sudo apt-get autoremove openjdk-11-jre-headless
Ant 或 Maven 构建
二号坑:这里还是不能用命令下载,否则ant会自动下载openjdk11等等一些改变你Java环境的东西!
排坑:
手动安装ant步骤
maven的话,命令下载就好:
sudo apt-get install maven
Python开发包
sudo apt-get install python-dev
它会提示你“注意,选中 ‘python-dev-is-python2’ 而非 ‘python-dev’”,不用管继续执行就行。
Eclipse IDE
三号坑:首选 Eclipse Luna!
这是官方文档的一段提示:“建议使用 Eclipse Luna 版本成功导入 Floodlight 项目。其他 Eclipse 版本也可以,只是人们有时在配置这些版本时可能会遇到麻烦(大多数时候,JDK 问题和“未解决的编译问题”)。 本教程使用 Eclipse Luna 版本编写和测试,因此推荐使用该版本。对于 Floodlight 主分支,您仍应确保在您的环境中安装了 Java 8,并且在 Eclipse 中正确配置了 JDK 1.8。”
Luna版下载安装:
下载Eclipse IDE Luna Linux_x64最新版到/opt目录下
wget -P /opt https://archive.eclipse.org/technology/epp/downloads/release/luna/SR2/eclipse-java-luna-SR2-linux-gtk-x86_64.tar.gz
打开/opt
cd /opt
解压
tar -zxvf eclipse-java-luna-SR2-linux-gtk-x86_64.tar.gz
打开eclipse目录
cd /opt/eclipse
启动eclipse
./eclipse
最新的build、git工具
sudo apt-get install build-essential
sudo apt-get install git
二、下载并构建
四号坑:不要用终端直接在github.com上下载github的源码!
众所周知,GitHub官网很不稳定,而floodlight源码的下载时间很长,如果中途出现短暂断连就会导致下载不完整,致使编译运行出错,还很难手动补充缺失文件。
排坑:
推荐一个目前很稳定的镜像源:https://hub.fastgit.xyz。
即,
顺序执行:
git clone git://hub.fastgit.xyz/floodlight/floodlight.git
cd floodlight
git pull origin master
git submodule init
git submodule update
ant
sudo mkdir /var/lib/floodlight
sudo chmod 777 /var/lib/floodlight
小坑:
-
有时候第一行命令还是会显示拒绝连接,可能是公司网络的暂时限制,将“git://”变成“https://”即可;
-
执行“git submodule update”时很容易出现“连接失败、克隆失败、尝试重新克隆。。。” 的错误,还是因为github官网的不稳定造成的,这里目前没有别的办法,失败了就再执行,知道他执行成功为止;
-
ant这一步最好改用:
ant eclipse
以下是官方文档关于用eclipse开发floodlight的一段内容:与其手动设置项目,不如轻松使用 Eclipse 来ant target(floodlight目录下的一个主要目录)。(确实非常快~~)
-
ant之后容易出现一个比较常见的问题导致build failed:
(图片来源:https://blog.csdn.net/weixin_39147736/article/details/105557018)
仔细检查一下前面的步骤是否都严格执行,坑是否都填了。有个解释是这样的:openjfx是为了解决程序包javafx.util不存在的问题,需要执行:
sudo apt-get install openjfx
但我当时并没有立刻得到解决,后来发现这个令人头疼的问题主要还是由前面遇到的那些坑没有被排掉造成的!!!
-
最后两行命令是一个目录的创建和权限修改操作,我的这个目录在ant以后就是已经操作好了的,无需执行。
-
关于切换不同版本,官网说“要使用特定版本,请在‘git clone’步骤中通过附加’-b ‘来指定版本分支,例如‘-b v1.2’”,还有“如果您想切换到不同的版本,请将“git pull”步骤中的“master”替换为您想要的版本分支,例如’v1.1’、'v1.2’等”。我试过都没啥用,要切换的话,只能在ant完之后,执行命令:
git checkout v0.90
切换的版本号改v后面的数字就行。如果出错,删除它提示的所需要删除的文件即可。
三、运行floodlight
在 Eclipse 中运行
先将floodlight导入eclipse的workspace:
- 打开eclipse并新建一个工作区
- File -> Import -> General -> Existing Projects 进入Workspace。然后点击"Next"
- 从“Select root directory”中单击“Browse”。选择您之前放置 Floodlight 的父目录
- 选中“floodlight”复选框。不应存在其他项目,也不应选择任何项目。 单击完成
创建FloodlightLaunch target:
- 单击Run->Run Configurations
- 右键Java Application->New
- Name用FloodlightLaunch
- Project用Floodlight
- Main用net.floodlightcontroller.core.Main
- 单击Apply
要运行 Floodlight,请单击播放按钮旁边的下拉箭头并选择要运行的正确目标。这些也适用于调试目标。
或者,在终端中运行
在floodlight目录下,
java -jar target/floodlight.jar
在浏览器中打开
在同一系统的浏览器中访问http://localhost:8080/ui/index.html,显示界面:
四、未解决的源码问题
目前运行倒是没问题,和OVS也能连接,但是源码是有错误的,控制台也显示异常(T_T):
源码也有问题的同学一起交流交流啊。文章来源:https://www.toymoban.com/news/detail-426595.html
五、参考链接
floodlight官方文档
Unbuntu下Java环境搭建
Ubuntu下安装最新OpenJdk1.8
Linux之ant安装部署
安装floodlight遇到的问题,程序包 org.apache.thrift .annotation不存在
git “errno=Connection refused”
UbuntuLinux遇到缺少javac、javax的解决方法以及卸载系统自带的openjdk11
Ubuntu16.04安装Floodlight相关问题解决文章来源地址https://www.toymoban.com/news/detail-426595.html
到了这里,关于Linux下的floodlight安装指南(排坑版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!