Ubuntu下OpenGrok的安装配置

转载于:http://blog.csdn.net/tyronne/article/details/34984805


OpenGrok是一个快速,便于使用的源码搜索引擎与对照引擎,它能够帮助我们快速的搜索、定位、对照代码树。接下来就具体讲解一下OpenGrok的安装及使用。先看下官网( http://opengrok.github.io/OpenGrok/ )说的安装要求:


======

主要几步:

0、Java环境

1、安装ctags

2、安装web服务-tomcat

3、安装和配置-opengrok

======

我的系统Ubuntu12.04LTS。首先提醒一下,为了减少权限造成的不必要麻烦,最好把tomcat和opengrok安装的目录使用chown -R转成自己账户拥有或安放在自己拥有权限的目录里。好了,下面开始:

0、准备java 1.7及以上

准备工作,PATH配置:
[plain]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. export JAVA_HOME=/usr/local/jdk1.7.0_67  
  2. export PATH=$JAVA_HOME/bin:$PATH  
  3. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  


1、安装ctags

apt-get, 不说了

2、安装web服务-tomcat

第一种方法,apt-get,但安装后默认站点不是webapps目录下,而是webapps/ROOT下,仍需要手动修改(不推荐这种)。
[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <del>sudo apt-cache search tomcat 或者 sudo apt-cache search all | grep tomcat</del>  
[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <del>sudo apt-cache show tomcat7 可以查看包的详细信息  
  2. </del>  
先查一下能得到安装的tomcat版本,然后apt-get insall安装相应版本。启动tomcat,一般是:
[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <del>sudo /etc/init.d/tomcat7 start</del>  

第二种方法,手动安装(推荐使用这种)。
【解压缩 - 进入其bin目录 - 运行启动脚本】

首先大家应该明白OpenGrok是一个Web系统,因此要共享OpenGrok搜索引擎,需要安装Web服务器。在Ubuntu环境下,推荐使用Tomcat。下载Tomcat到指定目录(例如我使用的是 ~/grok)。

解压下载的Tomcat压缩包,进入目录

[python]  view plain copy
  1. #tar zxfv apache-tomcat-7.0.40.tar.gz
  2. #cd apache-tomcat-7.0.40
进入Tomcat的./bin目录,启动Tomcat服务。(开启服务startup.sh,停止服务shutdown.sh脚本。 另: 计算机重启后,tomcat服务没有自动开启,需手动重新启动。 )

[python]  view plain copy
  1. # cd bin/
  2. # sh startup.sh
启动Tomcat服务后,在浏览器中输入网址: http://localhost:8080/  能够显示以下页面证明Tomcat运行成功。




3、安装配置-opengrok

【解压缩 - a)拷贝source.war包到tomcat/webapps下 - b)客制化OpenGrok】

a)拷贝source.war包到tomcat/webapps下

安装好Tomcat后,接下来就是配置OpenGrok了。OpenGrok下载地址:http://opengrok.github.io/OpenGrok/ 在该网址中可以下载OpenGrok的编译文件,也可以下载源文件。这里直接下载编译好的二进制文件(对OpenGrok感兴趣的同学可以下载源码查看究竟),下载后通过以下命令进行解压:

[plain]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. #tar zxfv opengrok-0.11.1.tar.gz  


解压完成后进入到解压目录,将opengrok/lib目录下的source.war包拷贝到apache-tomcat/webapps目录下(备注:war包会自动解压)【注意,看一下解压后的source目录的属主和权限,要用chown转成自己拥有】,在浏览器中输入 http://localhost:8080/source/ 网址看到以下界面证明OpenGrok运行成功。

b)客制化OpenGrok

先上一张diff文件的图,来个总览,然后再分步说明:




下面是分步说明:

首先,用文本编辑器打开opengrok/bin/OpenGrok脚本文件,找到DefaultInstanceConfiguration函数里面的



即: OPENGROK_INSTANCE_BASE="${OPENGROK_INSTANCE_BASE:- /var/opengrok}"
并且在其后面不远处,会看到:


[plain]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. SRC_ROOT="${OPENGROK_INSTANCE_BASE}/src"  
  2. DATA_ROOT="${OPENGROK_INSTANCE_BASE}/data"  
  3. PATH_DESC="${OPENGROK_INSTANCE_BASE}/etc/paths.tsv"  
  4. XML_CONFIGURATION="${OPENGROK_INSTANCE_BASE}/etc/configuration.xml"  


解释:其中红色部分显示的路径 /var/opengrok,就是默认寻找你的源码路径src和存放生成的data、etc等目录文件的位置。你可以先在/var下面手动建立目录opengrok/src,然后把你的源码放到src目录里。
如果你不想使用默认的/var路径,就需要自己指定路径。也就是把: OPENGROK_INSTANCE_BASE="${OPENGROK_INSTANCE_BASE:- /var/opengrok}" 的红色部分的/var换成指定目录。


然后指定 ctags、java、tomcat:
指定ctags命令名:



指定java路径:



添加tomcat路径:




接下需要更改apache-tomcat/webapps/source/WEB-INF目录下的web.xml配置文件。下面红色框住的路径 /var/opengrok修改为在前面OpenGrok脚本里面指定的目录。

【如果前面OpenGrok脚本里使用了默认的/var/opengrok路径,则tomcat/webapps/source/WEB-INF目录下的web.xml不需要修改。如果自己客制化了目录,则要修改】:



修改完毕,保存ok.

最后,部署一下

进入/opengrok/bin目录,运行命令:

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. # ./OpenGrok  deploy  


就部署好了。


4、OK,使用OpenGrok建立源码索引

进入./opengrok/bin 目录,执行以下命令建立源码索引:

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. # ./OpenGrok index  或者 ./OpenGrok index src_path  

建立源代码索引,完成。

好了,这样可以用浏览器遨游你的代码了。


【 说明:以后每次生成索引时,都是:部署deploy+索引index 两步 】

------------------

下面是扩展:

5、删除索引文件

 把4中所说的存放生成文件的opengrok目录中除了src目录外的其他文件删除。

6、怎么生成多个源代码projects?

第一,在tomcat之webapps下的source.war拷贝一份重命名为例如xxx.war,然后其会自动解压缩成xxx目录【注意看一下解压后的xxx目录的属主和权限,要用chown转成自己拥有,这样才能拥有权限】,然后进入xxx/WEB-INF目录下的web.xml配置文件,将行???/etc/configuration.xml所指的路径???指定到刚刚生成的源代码索引所设置的etc目录。

打开浏览器 http://localhost:8080/xxx/测试看能否成功显示opengrok页面。


第二,正常生成某特定源码的opengrok索引。即

a)修改opengrok/bin/OpenGrok的OPENGROK_INSTANCE_BASE路径

b)仿照上面路径设置格式,添加指定OPENGROK_WEBAPP_CONTEXT为你的源代码树所在目录名称。因为注释里说,默认是source目录,也即在搜索符号、函数等参考的时候是http://localhost:8080/source/...... 而不是你的代码所在目录,所以要改掉。(这是脚本里的注释说明:)

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. #   - OPENGROK_WEBAPP_CONTEXT     Context URL of the OpenGrok webapp  
  2. #                                 (by default /source)  

c)配置ctags-java-tomcat,

d)然后部署deploy,然后在index的时候加上第二参数index  src_path而让脚本不采用默认的src目录。

【注意:每份独立源代码都要单独修改OpenGrok脚本里的OPENGROK_INSTANCE_BASE路径,这样生成的data、etc等等文件目录就不会被新工程再生成的覆盖掉。其他不用改动】


最后重新启动tomcat(脚本shutdown.sh和startup.sh)。打开浏览器 http://localhost:8080/xxx/就能访问特定的代码索引。

OK.




---------

说明:在整理过程中主要参考了以下几篇文章

http://blog.csdn.net/weihan1314/article/details/8944291

https://blogs.oracle.com/ford/entry/setting_up_opengrok

http://blog.163.com/yungang_z/blog/static/175153133201139101454288/

并根据自己的配置过程,做了一定的添加和修改。

由于多次的更新,某些变量位置前后可能对不上,看官请根据具体情况加以修改 :D 。

猜你喜欢

转载自blog.csdn.net/u013656962/article/details/51682574