Opengrok的安装及配置

Opengrok是一款配置非常方便的读代码工具。其便利性的最根本原因是它是基于web运行的,也就是说只要有一个web服务器,搭建好opengrok之后,你可以通过电脑或者手机的浏览器随时随地的看代码。

此外,它还有如下优点:

  1. 可使用正则表达式搜索关键字;
  2. 可方便的打开多个网页对照看代码,而不像vi或者source insight一样需要跳转,后退来查看;
  3. 支持多种代码管理工具(git、svn等),可方便查看提交历史,提交diff,每行代码的提交SHA1。

当然,由于其便捷的访问方式,其缺点也是显而易见的:它不支持账号管理,任何知道服务器信息的人都可以通过链接查看代码。如果你的代码不愿意公开,那么你只能将其搭建于内部服务器上,然后通过VPN访问。

废话少说,先上两张截图来对其有一个直观的印象:
index
diff

下面我们以ubuntu 上安装为例,来详细介绍Opengrok的安装及使用。
环境需求:

  1. Ubuntu 16.04.5 LTS
  2. python3执行环境

一、必备软件安装

Opengrok的运行需要以下软件,因此安装前我们需要确保它们被正确安装。各个软件的安装方法简单列举如下。

1.1 安装oracle java 8

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

1.2 安装tomcat8

1.2.1 命令行安装

sudo apt-get install tomcat8 -y

1.2.2 源码安装(推荐)

tar zxvf apache-tomcat-8.5.37.tar
sudo mv apache-tomcat-8.5.37/ /opt/apache-tomcat-8.5.37
sudo ln -s /opt/apache-tomcat-8.5.37/ /opt/tomcat8
/opt/tomcat8/bin/startup.sh

1.3 安装universal-ctags

给代码建立索引时,要使用到universal-ctags工具,但是一般通过apt-get安装的都是exuberant-ctags,所以要先删除原有的ctags版本,然后安装universal-ctags.

1.3.1 卸载exuberant-ctags

sudo apt-get purge ctags

1.3.2 下载universal-ctags源码

git clone https://github.com/universal-ctags/ctags.git

1.3.3 编译及安装

cd ctags
./autogen.sh 
./configure
make
sudo make install

1.4 安装pip3

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3 get-pip.py

二、安装opengrok

安装过程很简单,只需要将源码下载,然后解压即可。
下载地址为:https://github.com/oracle/opengrok/releases

sudo tar zxvf opengrok-1.1.2.tar.gz -C /opt
sudo mv /opt/opengrok-1.1.2 /opt/opengrok
cd /opt/opengrok/tools
sudo  python3 -m pip install opengrok-tools.tar.gz

三、配置opengrok

3.1 创建opengrok所需要的目录

cd /opt/opengrok
sudo mkdir -p /opt/opengrok/etc         # Opengrok配置文件目录
sudo mkdir -p /index/src                # Opengrok索引代码目录(可以指定任意目录)
sudo mkdir -p /opt/opengrok/database/data     # Opengrok索引数据目录

注:Opengrok可以索引多套独立的代码。因此,建议建立一个Opengrok索引代码目录(/index/src),将不同的代码分别放到单独的目录里,然后统一复制到Opengrok索引代码目录(/index/src)。

3.2 copy源码至Opengrok的src目录

sudo cp -rf /your/code/dir1 /your/code/dir2 /index/src

注:请将/your/code/dir1 /your/code/dir2改为代码的实际路径。

3.3 部署Opengrok

sudo cp /opt/opengrok/lib/source.war /opt/tomcat8/webapps

3.4 生成索引

sudo opengrok-indexer -J=-Djava.util.logging.config.file=/var/opengrok/logging.properties -a /opt/opengrok/lib/opengrok.jar --  -s /index/src -d /opt/opengrok/database/data -H -P -S -G -W /opt/opengrok/etc/configuration.xml -U http://localhost:8080/source

3.5 修改配置文件的路径

sudo vi /opt/tomcat8/webapps/source/WEB-INF/web.xml

修改Opengrok的config文件为真实的config文件路径:

10 <context-param>
11 <description>Full path to the configuration file where OpenGrok can read its configuration</description>
12 <param-name>CONFIGURATION</param-name>
13 <param-value>/opt/opengrok/etc/configuration.xml</param-value>
14 </context-param>

3.6 重启tomcat service

/opt/tomcat8/bin/shutdown.sh && /opt/tomcat8/bin/startup.sh

到此为止,Opengrok的安装已经全部结束,假如server的ip为192.168.10.4,这时,在浏览器中打开192.168.10.4:8080/source,就能够看到刚刚安装好的opengrok了。

四、卸载Opengrok

4.1 停止tomcat服务

/opt/tomcat8/bin/shutdown.sh

4.2 卸载tomcat并删除所有配置文件

sudo apt-get --purge remove tomcat8 -y
sudo rm -rf /opt/tomcat8/

4.3 删除Opengrok的配置文件及相关数据

sudo rm -rf /opt/opengrok/etc/configuration.xml /opt/opengrok/database

五、常见问题

5.1 如何更新索引数据

更新索引数据和生成索引的方法是一样的,命令如下:

sudo opengrok-indexer -J=-Djava.util.logging.config.file=/var/opengrok/logging.properties -a /opt/opengrok/lib/opengrok.jar --  -s /index/src -d /opt/opengrok/database/data -H -P -S -G -W /opt/opengrok/etc/configuration.xml -U http://localhost:8080/source

在更新完之后,最好重启一下tomcat:

/opt/tomcat8/bin/shutdown.sh && /opt/tomcat8/bin/startup.sh

5.2 如何重装Opengrok

很多时候会碰到一些莫名其妙的错误,如果实在没有办法解决,就只有重装Opengrok了。重装的时候务必按照四、卸载Opengrok里写的方法保证所有的配置文件都删除干净,然后重新执行三、配置opengrok的步骤即可。

注:/your/code/dir索引代码时的路径(即5.1中-s参数后的代码路径)

六、更多帮助

https://github.com/oracle/opengrok/wiki

注:文章更新于2019-01-26。

发表评论

电子邮件地址不会被公开。 必填项已用*标注