//查看当前ubuntu系统版本

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"

在Ubuntu 16.04.6安装opengrok

1.下载并编译universal-ctags

如果没有安装git, autoconf,先安装

sudo apt install git autoconf

不要再使用 Exuberant ctags,因为已经不再维护更新,对于新版本的Opengrok支持度不好,给代码建立索引时,要使用到universal-ctags工具,但是一般通过apt-get安装的都是exuberant-ctags,所以要先删除原有的ctags版本,然后安装universal-ctags.

sudo apt-get remove --purge exuberant-ctags

下载并编译universal-ctags
参考:https://github.com/universal-ctags/ctags

To build with Autotools (Autoconf, Automake, and Libtool) on GNU/Linux, OSX, or Windows 10 WSL,

  $ git clone https://github.com/universal-ctags/ctags.git$ cd ctags$ ./autogen.sh$ ./configure --prefix=/where/you/want # defaults to /usr/local/bin/ctags$ make$ make install

安装好后   ctags --version查看版本信息,说明安装成功

$ ctags --version
Universal Ctags 5.9.0(80753d6), Copyright (C) 2015 Universal Ctags Team
Universal Ctags is derived from Exuberant Ctags.
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren HiebertCompiled: Jan 11 2022, 12:27:15URL: https://ctags.io/Optional compiled features: +wildcards, +regex, +gnulib_regex, +iconv, +option-directory, +packcc, +optscript

2.下载并安装tomcat8

OpenGrok 是基于网页访问, 需要一个 Web 系统来支撑,所以必须安装Web服务器.
下载源码:https://tomcat.apache.org/download-80.cgi
我下载的版本apache-tomcat-8.5.73.tar.gz
解压缩:

tar zxvf apache-tomcat-8.5.73.tar.gz

将tomcat代码mv到/opt/tomcat8
在/opt/tomcat8/bin$执行 ./startup.sh  启动Tomcat服务后在浏览器中输入网址:http://localhost:8080/ 能够显示以下页面证明Tomcat运行成功。

3.下载OpenGrok

下载官网:http://opengrok.github.io/OpenGrok/ 
我下载的版本opengrok-1.1-rc5.tar.gz,解压缩 tar zxvf opengrok-1.1-rc5.tar.gz
将lib目录下的source.war拷贝到tomcat8/webapps目录下

cp /data2/ynwang/opengrok-1.1-rc5/lib/source.war /opt/tomcat8/webapps

此时打开网址http://localhost:8080/source 看到以下界面证明OpenGrok运行成功。这是Opengrok的雏形,是因为还未建立索引,所以configuration.xml还没生成,先不用关注:

cd opengrok-1.1-rc5
mkdir etc data src         //创建配置、数据、代码目录
cd opengrok-1.1-rc5/src
ln -s 源文件 目标文件   //创建android源代码的软链接

4. 配置src root

访问localhost:8080/source/以在tomcat下生成source目录,在/opt/tomcat8/webapps/source/WEB-INF/web.xml中修改configuration.xml的路径:

<display-name>OpenGrok</display-name><description>A wicked fast source browser</description><context-param><description>Full path to the configuration file where OpenGrok can read its configuration</description><param-name>CONFIGURATION</param-name><param-value>/data2/ynwang/opengrok-1.1-rc5/etc/configuration.xml</param-value></context-param>

5. 建立索引

java -jar /data2/ynwang/opengrok-1.1-rc5/lib/opengrok.jar -c /usr/local/bin/ctags -P -S -v -s /data2/ynwang/opengrok-1.1-rc5/src -d /data2/ynwang/opengrok-1.1-rc5/data -W /data2/ynwang/opengrok-1.1-rc5/etc/configuration.xml -m 256

#-Xmx8g:配置Java 最大堆内存为8g,防止内存溢出
#-jar:指定opengrok.jar包
#-c:指定universal-ctags的路径,configure配置的路径,此时使用which ctags得到的路径是/usr/local/bin/ctags
#-s:指定源码路径,就是上面的新建的src
#-d:指定索引文件存放路径,就是上面新建的data
#-W:指定configuration.xml的路径,就是上面新建的etc
#-m:指定opengrok索引时的缓存大小,默认只有16M

6. 添加新的代码索引

在opengrok-1.1-rc5/src目录建立新的源码的软链接,然后重新执行步骤5的命令即可。

最终如图:

ubuntu 16.04搭建OpenGrok相关推荐

  1. WordPress - 基于 Ubuntu 16.04 搭建个人博客

    WordPress - 基于 Ubuntu 16.04 搭建个人博客 购买了腾讯云服务器后, 准备开始搭建个人博客了, 这里根据网上的各种资源整理一下.(终端下进行) 如果是学习的话强烈推荐 基于 U ...

  2. linux系统嵌入式编译环境,64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解...

    64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解,开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛. 安装步骤 1.准备工具安装目录 将压缩包ar ...

  3. ubuntu 16.04 搭建 python 开发环境

    2019独角兽企业重金招聘Python工程师标准>>> 由于ubuntu 16.04  采用的是python2.7版本,对于采用python3开发作为开发环境的,极为不方便,不过幸好 ...

  4. linux乌班图做服务器,使用 Ubuntu 16.04 搭建全能服务器

    本文教你如何在 Ubuntu 16.04 上安装 Apache.PHP.MySQL.PureFTPD.BIND.Postfix.Dovecot 和 ISPConfig 3.1 搭建一个网站.邮件.邮件 ...

  5. Ubuntu 16.04 搭建Android开发环境

    1.Installing Java sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get inst ...

  6. ubuntu 16.04 搭建无线共享热点(PC 无线直连Android移动终端 调试,监控屏幕)

    由于android终端usb接口比较松,公司的无线网络使用人过多比较慢,所以想使用PC端无线直连 调试Android终端 配置无线共享 1 网卡要支持 2 安装 plasma-nm sudo apt- ...

  7. Ubuntu 16.04上搭建CDH5.16.1集群

    本文参考自:<Ubuntu16.04上搭建CDH5.14集群> 1.准备三台(CDH默认配置为三台)安装Ubuntu 16.04.4 LTS系统的服务器,假设ip地址分布为 192.168 ...

  8. nodejs实践录:ubuntu 16.04系统nodejs环境搭建

    本文讲述ubuntu 16.04 64bit系统中,nodejs环境的搭建. 安装 此章节已失效 此章节已失效 更新源,命令如下: sudo apt-get update sudo apt-get i ...

  9. 阿里云ECS服务器环境搭建(2) —— ubuntu 16.04 安装中文输入法(搜狗输入法)

    阿里云ECS服务器环境搭建(2) -- ubuntu 16.04 安装中文输入法(搜狗输入法) 1. 环境 阿里云 ECS服务器 (4核 8G 4M) Ubuntu16.04-64-bit 图形界面 ...

最新文章

  1. redux常见问题答疑
  2. iscroll 滚动刷新
  3. 云计算之路-试用Azure:数据库备份压缩文件在虚拟机上的恢复速度测试
  4. dwf怎么合成一个_将ActionForm拼合成一条插入和更新语句
  5. Python time localtime()方法
  6. springcloud gateway 使用nacos 动态过滤器 记一次线上网关升级cpu升高的问题
  7. Java中的NIO非阻塞编程
  8. 转!!ftp的主动模式(port)与被动模式(PASV)
  9. ibatis.net:第六天,QueryForList
  10. python中列表、元组、字符串都属于有序序列_列表、元组、字符串是Python的有序序列。...
  11. 网易严选搜索推荐实践之:“全能选手”召回表征算法实践
  12. 2021年中国助听器市场趋势报告、技术动态创新及2027年市场预测
  13. 单结晶体管的导电特性_二极管的导电特性
  14. flowable 中的互斥网关、并行网关、兼容网关、事件网关
  15. 快速在小程序上实现“友情链接/合作伙伴”功能
  16. 黑群晖DSM 6.1网卡支持列表
  17. 用Java实现圆锥的体积公式_圆锥的体积公式及其推导
  18. 【数据结构】范浩强Treap(非旋转平衡树)可持久化Treap总结
  19. 说说基于BS架构的三维地图引擎如arcgis以及三维引擎cesium等在数字孪生三维可视化项目中踩过的那些坑
  20. 智能头盔 Livall携全球首款智能骑行头盔亮相CES

热门文章

  1. 数字电子技术实验作业(9)
  2. 苹果Mac系统快捷键 mac新手必看
  3. 原材料批次管理立体仓库库位管理生产领料管理生产线工序管理产成品系列号唯一码管理产品质量追溯管理
  4. 理解synchronized的含义
  5. 城市公交查询系统c语言,城市公交查询系统城市公查询系统.doc
  6. LORA技术学习 一
  7. 华为云平台架构名词解释
  8. 2022春哈工大计算机系统大作业——hello的程序人生
  9. php获取laydate,解决laydate时间日期插件定位溢出
  10. FIR数字滤波器的FPGA实现(二)-串行FIR滤波器设计(2)