Open Grok是一个强大的源代码搜索和对照引擎,是Open Solaris的源文件浏览及搜索工具。虽然Open Solaris已经不复存在,但这个工具仍然处于开发与维护之中。 相信我,绝对值得你拥有!

1. 安装Open Grok

1.1 安装Tomcat

sudo apt-get install tomcat8

1.2 安装ctags

sudo apt-get install exuberant-ctags

1.3 下载Open Grok并安装到/opt

最新的版本是1.1-rc18, 可用wget下载到本地,例如:

wget https://github.com/oracle/opengrok/releases/download/1.1-rc18/opengrok-1.1-rc18.tar.gz

然后解压缩,

tar zxf opengrok-1.1-rc18.tar.gz

最后将opengrok移动到/opt下面存放。

sudo mv opengrok-1.1-rc18 /opt
cd /opt
sudo ln -s opengrok-1.1-rc18 opengrok

2. 配置Tomcat以使用Open Grok

2.1 Copy opengrok/lib/soure.war to /var/lib/tomcat8/webapps/

root# cp /opt/opengrok/lib/source.war /var/lib/tomcat8/webapps

2.2 Update WEB-INF/web.xml

root# cp /var/lib/tomcat8/webapps/source/WEB-INF/web.xml /tmp/web.xml
root# vi /var/lib/tomcat8/webapps/source/WEB-INF/web.xml
// ...Edit L8...
// 8 <param-value>/var/opengrok/etc/configuration.xml</param-value>
// ...Replace /var with /opt
root# diff /var/lib/tomcat8/webapps/source/WEB-INF/web.xml /tmp/web.xml
8c8
< <param-value>/opt/opengrok/etc/configuration.xml</param-value>
---
> <param-value>/var/opengrok/etc/configuration.xml</param-value>

3. 体验Open Grok

3.1 创建一个样板工程

veli$ cd /var/tmp
veli$ mkdir git
veli$ cd git
veli$ git clone https://github.com/idorax/vCodeHub.git
veli$ sudo /opt/opengrok/bin/OpenGrok index /var/tmp/veli/git

3.2 体验开始!

  • 首页

  • 某个代码页

扩展阅读:

结束语: Open Grok是基于网页的代码搜索和比对工具,简单易用且高大上。当然,如果你始终钟情于LXR,没啥子好说的,也挺好! (P.S. 本人特别不喜欢单机版的Source Insight!)

Education is not the filling of a pail but the lighting of a fire. | 教育不是注满一桶水,而是点燃一把火。

在Ubuntu16.04上使用Open Grok的更多相关文章

  1. Ubuntu16.04上用源代码安装ICE

    ubuntu16.04上用源代码安装ICE

  2. Ubuntu16.04上安装neo4j数据库

    什么是neo4j数据库? neo4j数据库是图数据库的一种,属于nosql的一种,常见的nosql数据库还有redis.memcached.mongDB等,不同于传统的关系型数据库,nosql数据也有 ...

  3. 在ubuntu16.04上安装eclipse

     在ubuntu16.04上安装eclipse 一.下载     首先我们需要安装jdk1.8及其以上,然后从官网:https://www.eclipse.org/downloads/上下载,需要注意 ...

  4. 在ubuntu16.04上编译android源码【转】

    本文转载自:http://blog.csdn.net/fuchaosz/article/details/51487585 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6. ...

  5. ubuntu16.04上在使用搜狗输入法时,按shift不能正常切换中英文

    问题描述: ubuntu16.04上在使用搜狗输入法时,不知道把什么组合键给错按了,导致了按shift不能正常切换中英文,这是一件很烦恼的事儿! 解决步骤: 1,终端输入打开: fcitx-confi ...

  6. primecoin在ubuntu16.04上部署服务:

    primecoin在ubuntu16.04上部署服务: 一.下载Tomcat,Jdk,primecoin(公司内部文件) 注意Tomcat版本需要高于Jdk的,不然会报错. 二.把它们都解压到你要的安 ...

  7. Ubuntu16.04上安装cudnn教程和opencv

    https://blog.csdn.net/wang15061955806/article/details/80791112 Ubuntu16.04上安装cudnn教程 2018年06月24日 14: ...

  8. 【MindSpore】Ubuntu16.04上成功安装GPU版MindSpore1.0.1

    本文是在宿主机Ubuntu16.04上拉取cuda10.1-cudnn7-ubuntu18.04的镜像,在容器中通过Miniconda3创建python3.7.5的环境并成功安装mindspore_g ...

  9. 在Ubuntu16.04上部署LXC容器管理系统的相关步骤

    打算安装一个LXC linux容器管理的软件来分配使用资源并配置不同的编程环境,这样就方便大家的使用,步骤如下(宿主机的环境都搭建好了,对应显卡的驱动等): 参考网站: 简单入门和相关指令总结:htt ...

随机推荐

  1. Android-fragment的替换

    fragment的替换:是指一个Activity加载多个Fragment,当某些动作的时候在Activity替换Fragment显示: 昨天写的这几篇博客,Android-fragment简介-fra ...

  2. 理解load averages

      今天在客户的生产环境中遇到了网络丢包的问题,但是查看我方部署smokeping监控发现对同一条线路监控,我方监控显示正常,判断丢包是由客户服务器负载过高导致,原因及排查思路如下: 使用uptime ...

  3. flume 整合kafka

    背景:系统的数据量越来越大,日志不能再简单的文件的保存,如此日志将会越来越大,也不方便查找与分析,综合考虑下使用了flume来收集日志,收集日志后向kafka传递消息,下面给出具体的配置 # The ...

  4. WebRequest请求被中止: 未能创建 SSL/TLS 安全通道

    使用System.Net.WebRequest.Create(url)抓取某网站信息时 ,出现“未能创建 SSL/TLS 安全通道”此条异常信息 解决方案 引用:using System.Net; 在 ...

  5. asp.net—执行分页存储过程的函数

    分页存储过程的T—SQL在之前的文章中已经跟大家分享过了 现在就对应 分页存储过程 跟大家分享下在.net中执行的函数. 该文章是希望给予新手一些编程过程中的帮助(大神可以帮忙指出代码中的不妥之处) ...

  6. C#如何关闭指定进程

    public static void KillProcess(string strProcessesByName)//关闭线程 { foreach (Process p in Process.GetP ...

  7. 数据分析融入至BI工具的新思路

    欢迎访问网易云社区,了解更多网易技术产品运营经验. 很认同一种说法:BI对企业的作用不是BI本身,而是数据本身.那么BI的作用和意义是干什么的呢-是让有意义的数据自己说出自己意义的工具. BI发展至今 ...

  8. RxJS入门之函数响应式编程

    一.函数式编程 1.声明式(Declarativ) 和声明式相对应的编程⽅式叫做命令式编程(ImperativeProgramming),命令式编程也是最常见的⼀种编程⽅式. //命令式编程: fun ...

  9. 【文文殿下】【BZOJ4804】欧拉心算

    题解 显然有 \(ans=\sum _{i=1} ^{n} \lfloor \frac{n}{i} \rfloor \sum _{d|i} \mu(d) \phi (\frac{i}{d})\) 前半 ...

  10. 使用过Memcache缓存吗?如果使用过,能够简单描述下其工作原理吗?

    Memcache是把所有数据保存在内存中,采用hash表的方式,每条数据由key和value组成,每个key独一无二的.Memcache采用LRU算法逐渐把过期数据清除掉.