在Ubuntu 12.04 LTS上安装OpenGrok浏览Android源码

OpenGrok是一个快速,便于使用的源码搜索引擎与对照引擎,它能够帮助我们快速的搜索、定位、对照代码树。接下来就具体讲解 Ubuntu 12.04 LTS环境下 OpenGrok的安装及使用。

1.参照UBUNTU 13.10 APACHE 2.2 通过 AJP 整合 TOMCAT 7中讲述的方法,进行Tomcat,Apache2的配置安装。

2.安装 ctags用于对 C\C++代码的支持

3.下载并安装OpenGrok

可以到"http://opengrok.github.io/OpenGrok/"手工下载文件,然后上传到服务器,也可以直接用 wget命令来下载,一般选择安装在" /opt"目录下面。

解压缩文件到当前目录" /opt"

创建一个软链接,方便后续的修改

拷贝" /opt/opengrok/lib/source.war"到Tomcat7的工程目录" /var/lib/tomcat7/webapps/"

访问"http://localhost:8080/source/"确认OpenGrok是否已经安装成功,如果安装成功,出现下面的界面:OpenGrok

4.出于安全原因,禁止外网访问Tomcat的8080端口

只允许Tomcat在本地的8080端口监听即可,修改

添加 address="127.0.0.1"

重启Tomcat7

5.配置Apache2对Tomcat通过AJP进行反向代理

Apache2的配置文件“ /etc/apache2/sites-available/default”中,增加如下配置:

Tomcat7的配置文件 /var/lib/tomcat7/conf/server.xml中增加如下配置<Context path="/AndroidXRef" docBase="source/"/>,解决跳转404问题。 ProxyPass后面必须携带“/”,否则就会出现404问题。

6.配置 OpenGrok对源代码进行解析

设置要建立索引的源代码目录的位置,以存储在" /data/OpenGrok/Android_4.2"上的 Android代码为例子:

注意:

由于我们使用了Apache2的反向代理才需要设置  OPENGROK_WEBAPP_CONTEXT,如果没有设置反向代理,请不要设置 OPENGROK_WEBAPP_CONTEXT

在使用反向代理的时候如果不设置 OPENGROK_WEBAPP_CONTEXT会导致在点击具体的变量定义的时候,出现404.

不使用反向代理的时候请只设置 OPENGROK_INSTANCE_BASE

创建源代码索引

执行时间在40分钟左右,执行完成。生成的索引文件在源代码的" data"目录下面,重建索引的时候需要执行如下操作,才能再次建立索引

注意,请务必删除源代码中的"prebuilts"目录,这个目录下面存储的是一系列的编译工具,在浏览代码的时候,完全用不上,但是占据的磁盘空间确是巨大的。

注意,如果服务器上面的内存比较有限,请使用如下命令进行内存限制,否则建立索引的时候,会触发内存不足的情况:

修改 OpenGrok配置文件

修改其中的

为具体的工程目录" /data/OpenGrok/Android_4.2",修改后的配置如下:

刷新浏览器,可以看到 Android_4.2的源码可以搜索出来了。

参考链接