Ubuntu 搭建opengrok 流程

Ubuntu 搭建opengrok 流程opengrok平台搭建流程软件下载链接:https://pan.baidu.com/s/1kCeXNlj2l3FujyMza3rM0w提取码:iniy搭建前的准备电脑系统电脑系统推荐使用ubuntu16,这版系统较为稳定。细节未更新python环境推荐使用python2.7及以上版本,这一版本相对稳定,python安装细节未更新java环境推荐使用JDK1.8及以上版本,具体安装细节未更新通过java-version和javac-version可以查看版本。Ope

大家好,又见面了,我是你们的朋友全栈君。

opengrok平台搭建流程

搭建前的准备

软件下载链接: https://pan.baidu.com/s/1kCeXNlj2l3FujyMza3rM0w
提取码: iniy

电脑系统
电脑系统推荐使用ubuntu 16,这版系统较为稳定。细节未更新

python环境
推荐使用python 2.7及以上版本,这一版本相对稳定,python安装细节未更新

java环境
推荐使用JDK1.8及以上版本,具体安装细节未更新

通过 java -version 和 javac -version 可以查看版本。

Opengrok正式搭建:

安装Tomcat
Tomcat简介:百度

软件下载

本文以apache-tomcat-8.5.31.tar.gz安装包为例,进行讲解说明。

Tomcat安装

以本文的安装目录为参考进行讲解。不推荐将软件安装在系统根目录,这是因为后期同步代码仓后,会产生较大的索引文件,如果根目录空间太小,容易导致系统崩溃。
安装目录(本目录为自行创建的目录):/mnt/code/software_install/opengrok_platform

将tomcat安装包复制到该目录下,然后使用ctrl+alt+t组合快捷键打开终端。使用cd命令进入安装目录,确认安装包是否已经存在安装目录下,命令如下

$ cd /mnt/code/software_install/opengrok_platform
$ ls –al

结果如图
在这里插入图片描述
使用命令解压安装包

$ tar xvf apache-tomcat-8.5.31.tar.gz

解压完成后,安装目录下回多出一个目录
在这里插入图片描述
由于解压后的目录名称使用不便,推荐修改名称并删除原先的安装包,命令如下

$ mv apache-tomcat-8.5.31   tomcat     	#将apache-tomcat-8.5.31目录修改为tomcat目录
$ rm apache-tomcat-8.5.31.tar.gz			#删除原先的安装包
$ ls –al

此时解压后的生成的目录的名称会被修改为自己想要的名称
在这里插入图片描述
到这一步tomcat已经安装完成。此时我们还无法访问tomcat,因为尚未启动tomcat服务。需要按以下步骤启动tomcat。在终端中执行以下命令

$ cd /mnt/code/software_install/opengrok_platform/tomcat/bin
$ ./startup.sh

执行完成后会出现成功提示,说明tomcat已经启动成功
在这里插入图片描述
启动tomcat后,需要再次确认是否能够正常访问tomcat主页。打开系统的浏览器,输入访问地址:http://localhost:8080 会出现tomcat主页
在这里插入图片描述
说明tomcat tomcat服务已启动,可以正常访问。此时的tomcat只能被本地访问,其他电脑无法访问。为使得其他电脑也能访问,我们需要修改访问方式

将本地访问方式修改成ip地址访问方式。在终端执行以下命令

$ cd /mnt/code/software_install/opengrok_platform/tomcat/conf/
$ gedit server.xml

执行完命令,系统会自动打开TextEitor(TextEitor:linux自带的文档编辑器),在打开的TextEitor中通过关键字 localhost 定位到需要修改的地方。定位到以后,将localhost修改为自己系统的IP地址,保存并关闭TextEitor。修改结果如下
在这里插入图片描述

如果不知道自己系统IP,可以使用命令查看自己的IP,在终端执行命令

$ ifconfig

图中白色方框中便是自己的IP
在这里插入图片描述
此时,可以使用局域网内任何一台电脑访问自己的tomcat。访问方法:在任何一台电脑的系统浏览器中输入访问地址
访问地址:http://192.168.147.75:8080/
在这里插入图片描述

如果想关闭tomcat,可以在终端中执行命令

$ cd /mnt/code/software_install/opengrok_platform/tomcat/bin
$ ./shutdown.sh

到此tomcat的安装及配置已经完成。下一步是安装Ctags。

安装Exuberant Ctags:

Ctags简介:百度

Ctags安装
Ctags是opengrok必备的标签软件。可以通过命令自行安装,打开终端执行以下命令

$ sudo apt-get install exuberant-ctags

Ctags安装完成后,便是opengrok的安装工作。

安装opengrok

Opengrok简介:百度

Opengrok下载

opengrok安装
本文以安装包opengrok-1.1-rc27.tar.gz为例,讲解opengrok搭建
将安装包放到一开始创建的安装目录 /mnt/code/software_install/opengrok_platform/ 中。使用命令解压安装包,并对解压后的软件目录进行重命名,这一步骤与tomcat类似,在终端中执行以下命令

$ cd /mnt/code/software_install/opengrok_platform
$ ls –al   
$ tar xvf opengrok-1.1-rc27.tar.gz   
$ mv opengrok-1.1-rc27 opengrok
$ rm opengrok-1.1-rc27.tar.gz

最终结果如下
在这里插入图片描述

此时虽opengrok已完成安装,但无法使用。必须将opengrok与tomcat建立联系。具体方法是将opengrok的lib目录下的source.war文件,复制到tomcat的webapp目录下,此时系统会自动在webapp目录下生成一个source目录,可通过以下命令完成

$ cd /mnt/code/software_install/opengrok_platform/opengrok/lib
$ cp source.war  /mnt/code/software_install/opengrok_platform/tomcat/webapps/
$ cd /mnt/code/software_install/opengrok_platform/tomcat/webapps/
$ rm source.war
$ ls –al

最终结果如下
在这里插入图片描述

如果执行命令后source目录没有生成,可用过以下命令进行解决

$ cd /mnt/code/software_install/opengrok_platform/tomcat/webapps/
$ rm source.war
$ mkdir source
$ cd /mnt/code/software_install/opengrok_platform/opengrok/lib
$ cp source.war  /mnt/code/software_install/opengrok_platform/tomcat/webapps/source
$ mv source.war  source.zip
$ unzip source.war
$ rm source.war
$ ls –al

此时tomcat/webapp目录下同样会生成source目录。这一步的实际目的是将source.war这个压缩包中的内容解压出来,与系统自动生成的source是同样的效果。

测试opengrok
到此opengrok才正式安装完成。我们需要验证opengrok是否能够正常启动与使用。
启动opengrok,执行以下命令

$ cd /mnt/code/software_install/opengrok_platform/opengrok/bin
$ ./OpenGrok deploy

执行完成后,会出现以下成功提示
在这里插入图片描述

此时opengrok已经正常启动,可以通过浏览器访问opengrok主页
访问地址 http://192.168.147.75:8080/source/
这里的IP地址是tomcat中配置的本地地址,访问结果
在这里插入图片描述

出现以上结果,说明opengrok已经与tomcat成功建立连接。下一步是关联源代码仓。

关联代码仓

创建源代码仓关联目录
以上步骤完成后,代表opengrok平台已经搭建完成。下一步便是关联源代码。在关联源码的过程中会生成源代码索引文件和代码同步文件,而这个文件较大,如果根目录内存较小,便会导致系统崩溃。这就是之前不推荐将软件安装在根目录的原因。
opengrok是通过索引目录和索引文件配合来访问源码,而不是直接访问源码,因此需要创建源代码关联目录和索引文件存放目录。打开终端,执行以下命令

$ cd /mnt/code/software_install/opengrok_platform/opengrok             
$ mkdir source			#该目录直接关联到源代码
$ mkdir data				#该目录存放源代码索引文件
$ mkdir etc				#该目录存放后期代码同步的必须文件
$ ls –al

最终结果如下
在这里插入图片描述

配置环境变量

创建好源码关联目录后,需要关联源代码。关联源代码以及后期使用opengrok索引源代码的过程中都需要用到tomcat和opengrok的命令,但前期我们并没有配置tomcat和opengrok环境变量,所以此时我们需要配置tomcat和opengrok环境变量,打开终端执行以下命令

$ echo "export OPENGROK_SRC_ROOT=/mnt/code/software_install/opengrok_platform/opengrok/source"   >> /etc/profile
$ echo "export OPENGROK_SRC_ROOT=/mnt/code/software_install/opengrok_platform/opengrok/data"   >> /etc/profile
$ echo "export OPENGROK_TOMCAT_BASE=/mnt/code/software_install/opengrok_platform/tomcat"   >> /etc/profile
$ source /etc/profile                     
$ cat /etc/profile     

Profile文件中会多出以下内容
在这里插入图片描述

或者执行以下步骤,结果相同,这一步本文尚未尝试

$ echo "export OPENGROK_SRC_ROOT=/mnt/code/software_install/opengrok_platform/opengrok/source"   >>  ~/.bashrc   
$ echo "export OPENGROK_SRC_ROOT=/mnt/code/software_install/opengrok_platform/opengrok/data"   >>  ~/.bashrc   
$ echo "export OPENGROK_TOMCAT_BASE=/mnt/code/software_install/opengrok_platform/tomcat"   >>  ~/.bashrc   
$ source  ~/.bashrc                        
$ cat  ~/.bashrc   

环境变量具体含义:
OPENGROK_SRC_ROOT
该环境变量用于指定使用OpenGrok查看的源代码存放的目录,该目录用于直接关联上源代码实际存放目录
OPENGROK_DATA_ROOT
该环境变量用于指定OpenGrok生成的源代码索引文件存放目录
OPENGROK_TOMCAT_BASE
该环境变量用于指定Tomcat安装路径

关联源代码目录
Opengrok通过source目录来关联源码,在配合索引文件来访问源码。而关联源码的方法是通过软链接来实现,此处为了方便大家理解操作过程,临时创建了三个源代码目录,然后通过软链接将三个源代码目录关联到opengrok的source,源代码目录如下
在这里插入图片描述

执行以下命令创建软链接

$ cd /mnt/code/software_install/opengrok_platform/opengrok/source
$ ln –s  /mnt/code/basin/project/tmp1    /mnt/code/software_install/opengrok_platform/opengrok/source
$ ln –s  /mnt/code/basin/project/tmp2    /mnt/code/software_install/opengrok_platform/opengrok/source
$ ln –s  /mnt/code/basin/project/tmp3    /mnt/code/software_install/opengrok_platform/opengrok/source
$ ls -al      

执行结果如下
在这里插入图片描述

生成索引文件和configuration.xml文件
上一步虽然让opengrok与源代码目录关联起来,但是opengrok不可能直接跳转到源代码目录去查找目标代码,还缺少源代码索引文件。并且索引文件还可以大大缩减了代码检索时间。下一步就是创建源代码索引文件,创建命令如下

$ cd /mnt/code/software_install/opengrok_platform/opengrok
$ java -jar /mnt/code/software_install/opengrok_platform/opengrok/lib/opengrok.jar -P -S -v -s /mnt/code/software_install/opengrok_platform/opengrok/source -d /mnt/code/software_install/opengrok_platform/opengrok/data -I *.java -I *.c -I *.h -I *.cpp -i *.dat -i *.bin -i d:.git -i d:.repo -i d:log -i d:out -W /mnt/code/software_install/opengrok_platform/opengrok/etc/configuration.xml

-i: 忽略文件
对于上一命令有疑惑或不理解的地方,可以参考 https://ox0spy.github.io/post/install/setup-opengrok/
这一步将会占用很长时间,具体时长取决于源代码量,参考时间2小时。由于本文源代码量较小,这一步骤花费时间为1分钟左右。索引文件创建完成后终端中会有成功提示
在这里插入图片描述

关联configuration.xml文件

上一步中创建源代码索引文件的同时,会生成一个配置文件—configuration.xml。下一步需要将这个配置文件关联上tomcat,打开终端执行以下命令

$ cd /mnt/code/software_install/opengrok_platform/tomcat/webapps/source/WEB-INF       
$ gedit  web.xml 

在TextEidor中将CONFIGURATION的参数改为上一步生成的configuration.xml存放路径,修改结果如图
在这里插入图片描述

此时再通过浏览器访问opengrok的结果如图,访问地址 http://192.168.147.75:8080/source/
在这里插入图片描述

如图可以看到我们所创建的临时代码目录已经被加载到opengrok中。此时可以通过opengrok来检索源代码了

同步代码

如果我们更新了源代码,opengrok是无法检索到更新后的那一部分源代码的。所以我们必须再次创建源代码索引。为了简化步骤,我们可以通过脚本来实现。
将脚本放在/mnt/code/software_install/opengrok_platform/opengrok目录下,执行命令如下

$ cd /mnt/code/software_install/opengrok_platform/opengrok              
$ bash update.sh           

等待脚本执行完成,所花时间与源代码索引文件创建时间相同。这一步骤本质上等同于上文的源代码索引文件的创建,只是将需要的命令写入脚本而已。执行成功后会有如下成功提示
在这里插入图片描述

此时可以再次使用opengrok检索源代码

【参考文献】

[1] https://github.com/oracle/opengrok/wiki/How-to-install-OpenGrok
[2] http://blog.csdn.net/sauphy/article/details/50301815
[3] https://blog.csdn.net/luohuiwu/article/details/82382701
[4] https://blog.csdn.net/luzhenrong45/article/details/52734781
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140670.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月27日 下午2:40
下一篇 2022年5月27日 下午2:40


相关推荐

  • MDK(KEIL5)如何生成.bin文件(亲测可用)「建议收藏」

    MDK(KEIL5)如何生成.bin文件(亲测可用)「建议收藏」    最近师傅要求我们利用keil5生成.bin文件,但是在网上查找了很多资料,也按照网上的方法来设计,但是结果都不如意,没有出来。今天早上有折腾了一段时间,历经千辛万苦,终于生成了.bin文件了。下面分享一下,希望能帮到各位小伙伴。由于语言和能力不足,如果有错,还劳烦大佬斧正。    生产.bin文件方法有两种,一种是打开安装路径中的中的fromelf.exe,另一种是如我下图所示…

    2022年10月20日
    6
  • 三极管工作原理详解

    三极管工作原理详解参考文章 1 三极管工作原理详解 2 图说三极管的三个工作状态 3 图解三极管基本知识及电子电路图半导体三极管 又称为双极结型晶体管 bipolarjunct BJT 广义上 三极管有多种 常见如下图所示 狭义上 三极管指双极型三极管 是最基础最通用的三极管 本文所述的是狭义三极管 它有很多别称 三极管的发明晶体三极管出现之前是真空电子三极管

    2026年3月26日
    2
  • C语言实现电脑关机程序

    C语言实现电脑关机程序这个是我在网上搜索到的资料,其实也是很简单的。想使用ESP8266完成这样一个操作——远程关闭电脑,达到人在别的任何地方都可以操作我们的电脑。这个虽然已经不是羡慕新奇的事,实现的方法也撑出不穷,但我们学习ESP8266,也不失是一种体验的过程。对于初学者来说也是一种很有成就感的体验。因此,想完成远程关机,就需要理解怎么实现关机的命令及程序,我们使用C语言来完成。串口助手也可以实…

    2022年7月22日
    18
  • C++之split字符串分割

    C++之split字符串分割在C++中没有直接对应的split函数,字符串分割可借助以下方法实现:1、借助strtok函数函数原型:char*strtok(char*str,char*delim);函数功能:以delim为分隔符分割字符串str参数说明:str:要分隔的字符串;delim:分隔符返回值:从str开头开始的一个个被分割的字符串。当没有被分割时则返回null代码1:直接使用s

    2022年4月30日
    31
  • 嵌入式语音识别系统是什么

    嵌入式语音识别系统是什么随着人工智能行业的兴起 对人工智能技术的研发 我们周身慢慢涌现了人工智能的身影 它可以化身为你的爱车 在沙漠 森林或小巷中风驰电掣 它可以是智慧公正的交警 控制红绿灯 缓解交通的拥挤 它可以是给人以贴心照顾的小助理 熟悉你生活中的每一处小怪癖 而语音识别它能满足我们的需求 用更自然的方式与机器 虚拟助理进行交互沟通 实现拟人对话 对设备的操控或者问题答案的获取 还可利用语义建模 对某些业务场景中比

    2026年3月19日
    2
  • android m 滑动解锁,滑动解锁Slideunlock[通俗易懂]

    android m 滑动解锁,滑动解锁Slideunlock[通俗易懂]滑动解锁(Slideunlock)在之前的塞班机上可谓光茫四射,惹得一身荣耀,如今登入android市场,依然备受关注,多种解锁截屏法方式,满足不同人的需求。软件介绍滑动解锁(Slideunlock),一款仿Iphone又超越Iphone解锁和加锁的实用软件,华丽百变的UI,多种感应器加锁解锁功能,是您可以做到无需触碰手机即可轻松完成加锁或解锁操作。此软件的Symbian版曾流行国内外,一度在No…

    2022年6月15日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号